以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]ComboBox识别已登记的年份,再按年份生成图表。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117469)

--  作者:36792209
--  发布时间:2018/4/12 22:44:00
--  [求助]ComboBox识别已登记的年份,再按年份生成图表。

现在用的命令是这个,写在botton里,但是年份多了,怕崩溃(都是凭着自己的思路硬堆起来的码,勿怪),现在想加个选择现有年份的功能到ComboBox里,但是不知道怎么做。

 

我的思路是,表里有一列"报名日期",属性是日期, 想让ComboBox识别已登记的年份,选择好ComboBox里的年份后,再用button按钮进行年份筛选,请老师帮忙。。

 

 

\'定义一个GroupTableBuilder,名称为"统计表1",对订单表进行统计.
Dim b As New GroupTableBuilder("统计表1",DataTables("学员信息登记表"))
b.Groups.AddDef("报名日期", DateGroupEnum.Year, "年") \'添加日期列用于分组,并用"年"代替原名称
b.Groups.AddDef("报名日期","月") \'添加日期列用于分组,并用"月"代替原名称

b.Totals.AddDef("学费_价格") \'对数量进行统计
b.Build \'生成统计表

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表

Chart.ChartType = ChartTypeEnum.XYPlot \' 图形样式

Chart.SeriesList.Clear() \'清除图表原来的图系
For Each Year As String In DataTables("统计表1").GetValues("年")
    Series = Chart.SeriesList.Add() \'每年一个图系
    Series.Text =  Year & "年" \'  \'指定图系名称为年份
    Series.Length = 13  \'指定图系的数据点数,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     \'指定水平坐标为月份
        Dim r As DataRow = DataTables("统计表1").Find("年 = " & Year & " And  月 = " & Month)\'找出对应年月的行
        If r IsNot Nothing \'如果找到对应年月的行
            Series.Y(Month) = r("学费_价格") \'指定数量作为垂直坐标
        End If
    Next
Next

Series.DataLabelText = "{#YVAL}(元)"
Series.DataLabelBackColor = Color.Blue \'蓝底
Series.DataLabelForeColor = Color.White \'白字

Chart.AxisY.Text = "每月金额"

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

 


--  作者:有点甜
--  发布时间:2018/4/12 23:01:00
--  

1、参考

 

控件.ComboList = DataTables("统计表1").GetComboListString("年")

 

2、选择后,代码修改一下

 

For Each Year As String In DataTables("统计表1").GetValues("年", "年 = \'" & 控件.Text & "\'")