要指定长度
Dim DT As fxDataSource
Dim tbl As Table = e.Form.Controls("Table1").Table
Dim b As New SQLCrossTableBuilder("AA","D")
b.HGroups.AddDef("PID")
'b.HGroups.AddDef("CID")
b.HGroups.AddDef("Per")
b.VGroups.AddDef("Class")
b.Totals.AddDef("V","本期")
b.Totals.AddDef("V","累计",True) '
b.Filter = "PID = 'P1'"
Dt = b.BuildDataSource()
tbl.DataSource = DT
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
Chart.ChartType2 = ChartTypeEnum.XYPlot
Chart.DataSource = tbl.Name '设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.SeriesList2.Clear() '清除图表原来的图系
For Each c As Col In tbl.Cols
If c.Name <> "PID" And c.Name <> "CID" And c.Name <> "Per" And c.Name <> "Class" Then
If c.Caption Like "*本期*" Then
Series = Chart.SeriesList.Add() '增加一个图系
Else
Series = Chart.SeriesList2.Add() '给图表2增加一个图系
End If
Series.Text = c.caption '设置图系的标题
series.Length = tbl.Rows.Count
For i As Integer = 0 To tbl.Rows.Count - 1
series.x(i) = i
series.y(i) = tbl.Rows(i)(c.Name)
Chart.AxisX.SetValueLabel(i,tbl.Rows(i)("Per"))
Next
'------------数据绑定列的做法
'Series.X.DataField = "Per" 'X轴绑定到产品列
'Series.Y.DataField = c.Name '设置Y轴的绑定列
'--------------数据绑定列的做法结束
End If
Next
Chart.AxisX.AnnoWithLabels = True
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)