Foxtable(狐表)用户栏目专家坐堂 → 窗体中如何做选择交叉统计


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

主题:窗体中如何做选择交叉统计

美女呀,离线,留言给我吧!
yfy13338431925
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:4492 威望:0 精华:0 注册:2018/12/5 23:10:00
窗体中如何做选择交叉统计  发帖心情 Post By:2019/4/21 12:08:00 [只看该作者]

甜哥,蓝老师:

想做一个简单的人事统计表

用交叉统计,在窗体统计按钮中用下面代码可以正常生成统计表,我想逐一生成,或选择生成不知道怎么做

比如:按职务统计

按级别统计

按学历统计

按政治面貌统计

安专业技术职务统计

按部门统计

另:年度变量加入后该如何统计?

实例上传

Dim g As New CrossTableBuilder("统计表1", DataTables("人事档案基础信息"))

g.HGroups.AddDef("加入本单位年度")
g.HGroups.AddDef("所在部门")
g.HGroups.AddDef("现任职务")
g.HGroups.AddDef("级别")
g.HGroups.AddDef("专业技术职务")
g.HGroups.AddDef("学历")
g.HGroups.AddDef("政治面貌")
g.VGroups.AddDef("性别")
g.Totals.AddDef("姓名", AggregateEnum.Count, "人数")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()
MainTable = Tables("统计表1")
Tables("统计_Table1").DataSource = DataTables("统计表1")

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

[此贴子已经被作者于2019/4/21 15:20:37编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2019/4/21 17:42:00 [只看该作者]

参考

 

Dim n1 As WinForm.NumericComboBox = e.Form.Controls("NumericComboBox1")
Dim n2 As WinForm.NumericComboBox = e.Form.Controls("NumericComboBox2")
Dim filter As String = "1=1"
If n1.value <> Nothing Then
    filter &= " and 进入本单位时间 >= #" & new Date(n1.value, 1, 1) & "#"
End  If
If n2.value <> Nothing Then
    filter &= " and 进入本单位时间 < #" & new Date(n2.value+1, 1, 1) & "#"
End  If

Dim ck As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
Dim groupcols As new List(of String)
For i As Integer = 0 To ck.Items.count - 1 '获取已经勾选的列
    If ck.GetItemChecked(i) Then
        Select Case ck.Items(i)
            Case "按职务统计"
                groupcols.add("现任职务")
            Case "按级别统计"
                groupcols.add("级别")
            Case "按专业技术职务统计"
                groupcols.add("专业技术职务")
            Case "按学历统计"
                groupcols.add("学历")
            Case "按政治面貌务统计"
                groupcols.add("政治面貌")
        End Select
    End If
Next

Dim g As New CrossTableBuilder("统计表1", DataTables("人事档案基础信息"))
g.HGroups.AddDef("进入本单位时间", DateGroupEnum.Year, "加入本单位年度")
g.HGroups.AddDef("所在部门")
For Each c As String In groupcols
    g.HGroups.AddDef(c)
Next
g.VGroups.AddDef("性别")
g.Totals.AddDef("姓名", AggregateEnum.Count, "人数")
g.HorizontalTotal = True
g.VerticalTotal = True
g.filter = filter
Tables("统计_Table1").DataSource = g.BuildDataSource


 回到顶部