以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 交叉统计问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=130872) |
-- 作者:jq_shang -- 发布时间:2019/2/9 0:33:00 -- 交叉统计问题 1、由于筛选条件是按年度按季度筛选,本人不会在交叉统计的条件中,设置筛选条件表达式,所以,只好用筛选树筛选,或者用代码筛选; 2、对于经过筛选的数据,可以利用菜单功能组中的交叉统计功能,进行交叉统计; 3、我想把上述筛选以及交叉统计,集成一个窗口,却出现错误,筛选条件没有生效,统计了所有的记录; 4、在窗口中选择年度,选择季度,筛选结果不成问题,交叉统计的命令是从菜单栏原样拷贝的,在菜单栏执行正常,在窗口中执行就不正常了,请教如何改正? Dim cb1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")\'年度 Dim cb2 As WinForm.ComboBox = e.Form.Controls("ComboBox2")\'季度 Dim y As Integer = cb1.Value Dim q As Integer = cb2.Value Dim dt1 As New Date(y, 3 * (q - 1) + 1, 1) \'获取该季度的第一天 Dim dt2 As New Date(y, 3 * q, Date.DaysInMonth(y,3 * q)) \'获取该季度的最后一天 Dim Filter As String Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#" Tables("技能考察表").Filter = Filter \'以上代码执行正确,单独执行以上代码后,利用菜单栏交叉统计,结果正确。 \'以下代码是从菜单栏交叉统计中,复制出来的代码,放在窗口中执行,前面的筛选不起作用了。 Dim g As New CrossTableBuilder("季度汇总表", DataTables("技能考察表")) g.HGroups.AddDef("日期", DateGroupEnum.Year, "年度") g.HGroups.AddDef("日期", DateGroupEnum.Quarter, "季度") g.HGroups.AddDef("姓名") g.VGroups.AddDef("项目") g.VGroups.AddDef("日期", "{0}月") g.Totals.AddDef("考察分数", AggregateEnum.Max, "考察分数") g.Build() MainTable = Tables("季度汇总表") 感觉是table和datatable的问题,交叉统计第一句改成: Dim g As New CrossTableBuilder("季度汇总表", Tables("技能考察表").datatable) 也不行。 总之,对于同样的筛选结果,菜单栏能对筛选结果进行正确的交叉统计,窗口命令统计的却是全部数据。 |
-- 作者:有点甜 -- 发布时间:2019/2/10 11:45:00 -- Dim cb1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")\'年度
Dim g As New CrossTableBuilder("季度汇总表", DataTables("技能考察表")) g.filter = Filter |
-- 作者:jq_shang -- 发布时间:2019/2/13 21:08:00 -- 版主真甜!谢谢! |