以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 图表的筛选问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=23695) |
||||
-- 作者:paullqxp -- 发布时间:2012/9/17 11:06:00 -- 图表的筛选问题 在做图表时 遇到个筛选的问题 我的原表没有“年”这个列,只有“日期”列,想在窗体上做个年份的筛选,并能根据筛选的值,让图表只显示选定年份的数据 不会写代码,望高手赐教! 谢谢!
![]() ![]() |
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/9/17 12:44:00 -- 能日期筛选,就能按年筛选,按年筛选,就是筛选这年的1月1日到12月31日的行,例如2008年的:
Dim dt1 As Date = New Date(2008,1,1) Dim dt2 As Date = New Date(2008,12,31) ....Filter = "日期 >= #" dt1 & "# And 日期 <= #" & dt2 & "#" |
||||
-- 作者:paullqxp -- 发布时间:2012/9/17 13:25:00 -- 感谢狐爸的提示,我在组合框内容变更事件里写了下面的代码
======================================================= Dim nf As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Tables("表B").Filter = ("日期 >= #1/1/" & nf.Text & "# and 日期 <= #12/31/" & nf.Text & "#") \'利用组合框的值来对表B做筛选 筛选出当年的数据
Dim g As New CrossTableBuilder("统计表1", DataTables("表B")) ’下面是复制的系统自动生成的交叉汇总的代码 ========================================================= 当我点选组合框的值时,陷入死循环,我估计是由于组合框的值来自于汇总的临时表,而点选组合框的值对源表B做筛选,导致筛选、汇总之间陷入死循环 不知狐爸有啥好建议没有?
|
||||
-- 作者:paullqxp -- 发布时间:2012/9/17 13:27:00 -- 我这个问题的瓶颈在于,如何通过“日期”列,让组合框获得“年份”的值(不重复) |
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/9/17 13:53:00 -- 另外增加一个统计按钮,单击才开始进行统计。
至于年份,用数值框直接输入,默认值设置为当年,用上下微调按钮来调整。 一定要选的话,在窗口的AfterLoad事件加入代码:
Dim min As Date = DataTables("表B").Compute("Min(日期)")
|
||||
-- 作者:mr725 -- 发布时间:2012/9/17 14:01:00 -- 动态增加一个“年份”列,一切都简单了··· |
||||
-- 作者:paullqxp -- 发布时间:2012/9/17 14:15:00 -- 以下是引用mr725在2012-9-17 14:01:00的发言:
动态增加一个“年份”列,一切都简单了··· 怎么增加?不会啊! |
||||
-- 作者:paullqxp -- 发布时间:2012/9/17 14:22:00 -- 以下是引用狐狸爸爸在2012-9-17 13:53:00的发言:
另外增加一个统计按钮,单击才开始进行统计。
至于年份,用数值框直接输入,默认值设置为当年,用上下微调按钮来调整。 一定要选的话,在窗口的AfterLoad事件加入代码:
Dim min As Date = DataTables("表B").Compute("Min(日期)")
运行的效果是:点选一次组合框,多出来一次年份,越点越多 |
||||
-- 作者:lin_hailun -- 发布时间:2012/9/17 14:25:00 -- 在窗口的AfterLoad事件加入代码 |
||||
-- 作者:paullqxp -- 发布时间:2012/9/17 15:13:00 -- 增加了“年份”的列 解决了 |