以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  【图表】求助,如何选择年份进行生成对应年份的图表数据呢?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=112928)

--  作者:李孝春
--  发布时间:2018/1/5 12:01:00
--  【图表】求助,如何选择年份进行生成对应年份的图表数据呢?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:博航建材1215投入产出.rar



图片点击可在新窗口打开查看此主题相关图片如下:12.png
图片点击可在新窗口打开查看

下面红色部分组合框里面选择的年份数据,怎么对应的进行数据筛选到图表中去呢?
其中投入产出表里面有“年份”字段
Dim cb1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")  \'选择年份
Dim g As new GroupTableBuilder("统计表1",DataTables("投入产出"))
g.Groups.AddDef("月份")
g.Totals.AddDef("投入")
g.Totals.AddDef("产出")
g.Totals.AddDef("利润")
g.filter = "门店名称 = \'艾依格店\'"
Dim dt As DataTable = g.Build(True)

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart = e.Form.Controls("Chart3") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形)
Chart.SeriesList.Clear() \'清除图表原来的图系
Dim cls() As String = {"投入","产出","利润"}
For Each c As String  In cls
    Series = Chart.SeriesList.Add() \'增加一个图系
    Series.Text = c \'设置图系的标题
    Series.Length = 13 \'设置图系的长度
    For r As Integer = 0 To 12
        Series.X(r) = r
        Series.Y(r) = 0
    Next
    For i As Integer = 0 To dt.dataRows.Count - 1
        Series.Y(dt.dataRows(i)("月份")) = dt.dataRows(i)(c)
    Next
    Series.DataLabelText = c & "{#YVAL}"
Series.DataLabelConnected=True

    Series.TooltipText = "艾依格店" & c & "{#XVAL}月, {#YVAL}元"
Next

Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South
[此贴子已经被作者于2018/1/5 15:11:19编辑过]

--  作者:有点甜
--  发布时间:2018/1/5 15:27:00
--  
Dim cb1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")  \'选择年份
Dim g As new GroupTableBuilder("统计表1",DataTables("投入产出"))
g.Groups.AddDef("月份")
g.Totals.AddDef("投入")
g.Totals.AddDef("产出")
g.Totals.AddDef("利润")
If cb1.text > "" then
    g.filter = "门店名称 = \'艾依格店\' and 年份 = \'" & cb1.text & "\'"
Else
    g.filter = "门店名称 = \'艾依格店\'"
End If
Dim dt As DataTable = g.Build(True)