Foxtable(狐表)用户栏目专家坐堂 → [求助]ComboBox识别已登记的年份,再按年份生成图表。


  共有1691人关注过本帖树形打印复制链接

主题:[求助]ComboBox识别已登记的年份,再按年份生成图表。

帅哥哟,离线,有人找我吗?
36792209
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:1782 威望:0 精华:0 注册:2015/7/13 14:36:00
[求助]ComboBox识别已登记的年份,再按年份生成图表。  发帖心情 Post By:2018/4/12 22:44:00 [只看该作者]

现在用的命令是这个,写在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 '图列显示在南方(底端)

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/12 23:01:00 [只看该作者]

1、参考

 

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

 

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

 

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


 回到顶部