图示多列

前面的例子都是图示一个数据列,这次复杂一点,我们来图示下个表中的所有数据:

方法一

采用数据绑定的方式。
新建一个窗口,在窗口中分别插入一个图表和一个按钮,将按钮的Click事件代码设置为:

Dim Chart As WinForm.Chart '定义一个图表变量
Dim
Series As WinForm.ChartSeries '定义一个图系变量
Dim
t As Table = Tables("统计表1") '定义一个变量t引用数据表
Chart = e.Form.Controls(
"Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar
'图表类型改为Bar(条形)
Chart.DataSource =
"统计表1" '设置绑定表
Chart.SeriesList.Clear()
'清除图表原来的图系
For
Each c As Col in t.Cols
   
If c.Name <> "产品" Then
        Series = Chart.SeriesList.Add()
'增加一个图系
        Series.Text = c.Name
'设置图系的标题
        Series.X.DataField =
"产品" 'X轴绑定到产品列
        Series.Y.DataField = c.Name
'设置Y轴的绑定列
   
End If
Next

Chart.VisualEffect =
True '加上这一行,让你的图表更漂亮
Chart.LegendVisible =
True '显示图列
Chart.LegendCompass= CompassEnum.South
'图列显示在南方(底端)

生成的图表:

上面的代码接触到几点新的知识,首先通过下面的代码设置了新的图表类型:

Chart.ChartType = ChartTypeEnum.Bar

其次设置了每个图系的标题:

Series.Text = c.Name

在有多个图系的时候,最好设置每一个图系的标题,图系的标题显示在图例中,用于告诉用户该图系显示的是什么数据。
最后通过下面的代码,在指定的位置显示图例:

Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South
'图列显示在南方(底端)

不需要去深究上述新接触的属性,你只需要了解这些属性的作用,在后面的章节中,我们会详细介绍每一种属性。

方法二

直接编码生成:

Dim Chart As WinForm.Chart '定义一个图表变量
Dim
Series As WinForm.ChartSeries '定义一个图系变量
Dim
t As Table = Tables("统计表1") '定义一个变量t引用数据表
Chart = e.Form.Controls(
"Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar
'图表类型改为Bar(条形)
Chart.SeriesList.Clear()
'清除图表原来的图系
For
Each c As Col in t.Cols
    If
c.Name <> "产品" Then
        Series = Chart.SeriesList.Add()
'增加一个图系
        Series.Text = c.Name
'设置图系的标题
        Series.Length = t.Rows.Count
'设置图系的长度
       
For r As Integer = 0 To t.Rows.Count - 1
            Series.X(r) = r
            Series.Y(r) = t.Rows(r)(c.Name)

        Next
    End
If
Next
For
r As Integer = 0 to t.Rows.Count - 1
    Chart.AxisX.SetValueLabel(r, t.Rows(r)(
"产品")) '指定字符表示
Next

Chart.AxisX.AnnoWithLabels =
True '启用字符标示
Chart.VisualEffect =
True '加上这一行,让你的图表更漂亮
Chart.LegendVisible =
True '显示图列
Chart.LegendCompass= CompassEnum.South
'图列显示在南方(底端)

 


本页地址:http://www.foxtable.com/webhelp/topics/0970.htm