Foxtable(狐表)用户栏目专家坐堂 → 交叉统计问题


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

主题:交叉统计问题

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


加好友 发短信
等级:童狐 帖子:217 积分:1646 威望:0 精华:0 注册:2018/1/21 10:25:00
交叉统计问题  发帖心情 Post By: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)
也不行。
总之,对于同样的筛选结果,菜单栏能对筛选结果进行正确的交叉统计,窗口命令统计的却是全部数据。

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


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

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.filter = Filter
g.Build()
MainTable = Tables("季度汇总表")


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


加好友 发短信
等级:童狐 帖子:217 积分:1646 威望:0 精华:0 注册:2018/1/21 10:25:00
  发帖心情 Post By:2019/2/13 21:08:00 [只看该作者]

版主真甜!谢谢!

 回到顶部