以文本方式查看主题

-  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=84066)

--  作者:qwz405
--  发布时间:2016/4/22 14:16:00
--  [求助]ComboBox项目取值
1.先产生一个临时表,来取年度值.
Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("日期", DateGroupEnum.Year, "年")
g.Totals.AddDef("编号", AggregateEnum.Count, "数量")
g.Build()
\'MainTable = Tables("统计表1")


2.取得自定义项目
Dim nian As WinForm.ComboBox = e.Form.Controls("ComboBox1")
nian.ComboList = DataTables("统计表1").GetComboListString("年") & "|全部"


3.当表查询时,可正常取值
Dim nian As WinForm.ComboBox = e.Form.Controls("ComboBox2")
If nian.Value = "全部" Then
    Tables("表A").Filter = ""
Else
    Dim dt As Date = new Date(nian.value, 1, 1)     \'定义选择年度的第1天
    Tables("表A").filter = "日期 >= \'" & dt & "\' And 日期 < \'" & dt.addyears(1) & "\' "
End If


4.当需要取值产生新统计表时,只能取值1次
Dim nian As WinForm.ComboBox = e.Form.Controls("ComboBox1")
If nian.Value = "全部" Then
    Dim g2 As New GroupTableBuilder("统计表2", DataTables("表A"))
    g2.Groups.AddDef("日期", DateGroupEnum.Year, "年")
    g2.Totals.AddDef("编号", AggregateEnum.Count, "数量")
    g2.Build()
    \'MainTable = Tables("统计表2")
    Tables("统计_Table1").DataSource = g2.BuildDataSource
    Tables("统计_Table1").font = New Font("宋体", 12)
Else
    Dim dt As Date = new Date(nian.value, 1, 1)     \'定义选择年度的第1天
    Dim g2 As New GroupTableBuilder("统计表2", DataTables("表A"))
    g2.Filter = "日期 >= \'" & dt & "\' And 日期 < \'" & dt.addyears(1) & "\' "
    g2.Groups.AddDef("日期", DateGroupEnum.Year, "年")
    g2.Totals.AddDef("编号", AggregateEnum.Count, "数量")
    g2.Build()
    \'MainTable = Tables("统计表2")
    Tables("统计_Table1").DataSource = g2.BuildDataSource
    Tables("统计_Table1").font = New Font("宋体", 12)
End If

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目0422.table
[此贴子已经被作者于2016/4/22 14:16:46编辑过]

--  作者:大红袍
--  发布时间:2016/4/22 14:32:00
--  
 没看懂你的例子,什么控件,怎么操作后,怎么不对?
--  作者:qwz405
--  发布时间:2016/4/22 14:55:00
--  

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


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

[此贴子已经被作者于2016/4/22 14:56:10编辑过]

--  作者:大红袍
--  发布时间:2016/4/22 15:00:00
--  
我用15.22版测试没问题,等等试试最新版测试。
--  作者:大红袍
--  发布时间:2016/4/22 15:09:00
--  

改一下代码

 

Dim nian As WinForm.ComboBox = e.Form.Controls("ComboBox1")


If nian.Value = "全部" Then
    Dim g2 As New GroupTableBuilder("统计表2", DataTables("表A"))
    g2.Groups.AddDef("日期", DateGroupEnum.Year, "年")
    g2.Totals.AddDef("编号", AggregateEnum.Count, "数量")
    Tables("统计_Table1").DataSource = g2.BuildDataSource
    Tables("统计_Table1").font = New Font("宋体", 12)
    DataTables("统计_Table1").SysStyles("Alternate").BackColor = Color.LightCyan     \'设置交替行颜色
    DataTables("统计_Table1").SysStyles("EmptyArea").BackColor = Color.LightBLue     \'设置空白区域颜色
Else
    Dim dt As Date = new Date(nian.value, 1, 1)     \'定义选择年度的第1天
    Dim g2 As New GroupTableBuilder("统计表2", DataTables("表A"))
    g2.Filter = "日期 >= \'" & dt & "\' And 日期 < \'" & dt.addyears(1) & "\' "
    g2.Groups.AddDef("日期", DateGroupEnum.Year, "年")
    g2.Totals.AddDef("编号", AggregateEnum.Count, "数量")
    Tables("统计_Table1").DataSource = g2.BuildDataSource
    Tables("统计_Table1").font = New Font("宋体", 12)
    DataTables("统计_Table1").SysStyles("Alternate").BackColor = Color.LightCyan     \'设置交替行颜色
    DataTables("统计_Table1").SysStyles("EmptyArea").BackColor = Color.LightBLue     \'设置空白区域颜色
End If