Dim b As New SQLgroupTableBuilder("零售数量同期分析","零售业务")
b.AddTable("零售业务","部门名称","部门档案","部门名称")
b.Groups.AddDef("所属单位")
b.Groups.AddDef("部门类型")
b.Groups.AddDef("上级部门","部门")
b.Groups.AddDef("所属日期", DateGroupEnum.Year, "年")
b.Groups.AddDef("所属日期", "月")
b.Totals.AddDef("零售数量")
b.SamePeriodGrowth = True
b.Decimals = 2 '小数点取0位
b.Filter = Filter
b.Build '生成统计表
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= e.Form.Controls("销量同期") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar '设置图表类型
Chart.ChartType2 = ChartTypeEnum.XYPlot '图表2类型该为线形
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '给图表2增加一个图系
chart.AxisX.ClearValueLabel
chart.AxisY.ClearValueLabel
Chart.SeriesList2.Clear() '清除图表原来的图系
Series = Chart.SeriesList2.Add() '给图表2增加一个图系
chart.AxisX.ClearValueLabel
chart.AxisY2.ClearValueLabel
For Each Year As String In DataTables("零售数量同期分析").GetValues("年")
Series = Chart.SeriesList.Add() '每年一个图系
Series.Text = Year '指定图系名称为年份
Series.Length = 12 '指定图系的数据点数,1年12个月
Chart.AxisX.Min = 1 '指定X轴的最小值,也就是从1月开始
Chart.AxisX.Max = 12 ''指定X轴的最大值,一年只有12个月
For Month As Integer = 1 To 12 '逐月设置坐标
Series.X(Month) = Month '指定水平坐标为月份
Chart.AxisX.SetValueLabel(1, "一月份")
Chart.AxisX.SetValueLabel(2, "二月份")
Chart.AxisX.SetValueLabel(3, "三月份")
Chart.AxisX.SetValueLabel(4, "四月份")
Chart.AxisX.SetValueLabel(5, "五月份")
Chart.AxisX.SetValueLabel(6, "六月份")
Chart.AxisX.SetValueLabel(7, "七月份")
Chart.AxisX.SetValueLabel(8, "8月份")
Chart.AxisX.SetValueLabel(9, "九月份")
Chart.AxisX.SetValueLabel(10, "十月份")
Chart.AxisX.SetValueLabel(11, "十一月份")
Chart.AxisX.SetValueLabel(12, "十二月份")
Dim r As DataRow = DataTables("零售数量同期分析").Find("年 = " & Year & " And 月 = " & Month)'找出对应年月的行
If r IsNot Nothing '如果找到对应年月的行
Series.Y(Month) = r("零售数量") '指定数量作为垂直坐标
Series.Y2(Month) = r("零售数量stp") '指定数量作为垂直坐标
End If
Next
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.TopMost = True '不同图表间切换
Chart.SeriesList(0).DataLabelText = "{#YVAL}" '显示数据标记的值
Chart.SeriesList(0).TooltipText = "{#YVAL}" '停在数据标记上时是否显示值
Chart.SeriesList(1).DataLabelText = "{#YVAL}"
Chart.SeriesList(1).TooltipText = "{#YVAL}"
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)