以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]组合统计后,怎么显示合计行,怎么调整行的排列顺序 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=121769) |
-- 作者:tkxffb -- 发布时间:2018/7/12 18:29:00 -- [求助]组合统计后,怎么显示合计行,怎么调整行的排列顺序 各位老师,下面是我写的组合统计代码,现在有两个问题请老师指点:1.组合统计结果没有合计行,请问该怎么写代码,使统计表最后一行成为合计行,显示合计结果;2.由于报表时上级要求各类志愿者有固定排序(如第一行是协助指挥交通志愿者),而这个组合统计生成的各类志愿者排序与上级要求的不同,请问怎么调整行的顺序?烦劳各位老师了,谢谢! \'-------以下是生成临时表,对人数进行分组统计--------- Dim rsg As New GroupTableBuilder("各类志愿者人数统计表1", DataTables("志愿者人员信息表")) rsg.Groups.AddDef("志愿者类别") rsg.Totals.AddDef("姓名", AggregateEnum.Count,"在册人数",True) \'--统计姓名列列数,填充到在册人数 rsg.Subtotal = True rsg.Build()
\'-------以下是生成临时表,对女性人数进行分组统计--------- Dim nrb As New SQLGroupTableBuilder("各类志愿者女性人数统计表1","志愿者人员信息表") nrb.ConnectionName = "database" nrb.Groups.AddDef("志愿者类别") nrb.Totals.AddExp("其中女","iif(性别=\'女\',1,0)") nrb.Subtotal = True \'----纵向自动合计 nrb.build() \'----生成临时统计表
\'-------以下是生成临时表,对年龄进行分组统计--------- Dim nlb As New SQLGroupTableBuilder("各类志愿者年龄统计表1","志愿者人员信息表") nlb.ConnectionName = "database" nlb.Groups.AddDef("志愿者类别") nlb.Totals.AddExp("年龄_30岁以下","iif(年龄 < 30,1,0)") nlb.Totals.AddExp("年龄_30至59岁","iif(年龄 >= 30 And 年龄 < 60,1,0)") nlb.Totals.AddExp("年龄_60及以上","iif(年龄 >= 60,1,0)") nlb.Subtotal = True nlb.FromServer = True nlb.build()
\'-------以下是生成临时表,对学历进行分组统计--------- Dim xlb As New SQLGroupTableBuilder("各类志愿者学历统计表1","志愿者人员信息表") xlb.ConnectionName = "database" xlb.Groups.AddDef("志愿者类别") xlb.Totals.AddExp("文化程度_初中及以下","iif(文化程度=\'文盲\' Or 文化程度=\'小学\' Or 文化程度=\'初中\',1,0)") \'----左侧列名是临时表列名,右侧是志愿者人员信息表文化程度 xlb.Totals.AddExp("文化程度_高中及大学","iif(文化程度=\'高中\' Or 文化程度=\'中专\' Or 文化程度=\'大专\' Or 文化程度=\'本科\',1,0)") xlb.Totals.AddExp("文化程度_研究生及以上","iif(文化程度=\'硕士\' Or 文化程度=\'博士\',1,0)") xlb.Subtotal = True xlb.build()
\'--------以下是综合统计代码-------- Dim bd1 As New GroupTableBuilder("统计表1",DataTables("各类志愿者人数统计表1")) Dim dt1 As fxDataSource bd1.Groups.AddDef("志愿者类别") \'根据类别分组 bd1.Totals.AddDef("在册人数","在册人数") \'对数量进行统计,左侧是分类临时表列,右侧是综合统计临时表列 dt1 = bd1.BuildDataSource()
Dim bd2 As New GroupTableBuilder("统计表2",DataTables("各类志愿者女性人数统计表1")) Dim dt2 As fxDataSource bd2.Groups.AddDef("志愿者类别") \'根据类别分组 bd2.Totals.AddDef("其中女") \'对数量进行统计,左侧是分类临时表列,右侧是综合统计临时表列 dt2 = bd2.BuildDataSource()
Dim bd4 As New GroupTableBuilder("统计表4",DataTables("各类志愿者年龄统计表1")) Dim dt4 As fxDataSource Bd4.Groups.AddDef("志愿者类别") \'根据类别分组 Bd4.Totals.AddDef("年龄_30岁以下","年龄_30岁以下") \'对数量进行统计,左侧是分类临时表列,右侧是综合统计临时表列 Bd4.Totals.AddDef("年龄_30至59岁","年龄_30至59岁") \'对数量进行统计 Bd4.Totals.AddDef("年龄_60及以上","年龄_60及以上") \'对数量进行统计 Dt4 = bd4.BuildDataSource()
Dim bd6 As New GroupTableBuilder("统计表6",DataTables("各类志愿者学历统计表1")) Dim dt6 As fxDataSource Bd6.Groups.AddDef("志愿者类别") \'根据类别分组 Bd6.Totals.AddDef("文化程度_初中及以下","文化程度_初中及以下") \'对数量进行统计 Bd6.Totals.AddDef("文化程度_高中及大学","文化程度_高中及大学") \'对数量进行统计 Bd6.Totals.AddDef("文化程度_研究生及以上") \'对数量进行统计,左侧是分类临时表列,右侧是综合统计临时表列 Dt6 = bd6.BuildDataSource()
dt1.Combine("志愿者类别",dt2,"志愿者类别") \'将统计数据组合到进货统计数据 dt1.Combine("志愿者类别",dt4,"志愿者类别") \'将统计数据组合到进货统计数据 dt1.Combine("志愿者类别",dt6,"志愿者类别") \'将统计数据组合到进货统计数据 dt1.Show("统计表1") \'显示统计结果
Tables("综合统计_综合统计表").DataSource = dt1 \'将统计结果绑定到综合统计表 |
-- 作者:有点甜 -- 发布时间:2018/7/12 19:56:00 -- 生成统计表以后,设置一次汇总模式
http://www.foxtable.com/webhelp/scr/00144.htm
|
-- 作者:tkxffb -- 发布时间:2018/7/12 21:49:00 -- 有点甜老师,这种处理方法没法在项目发布时使用吧? |
-- 作者:有点甜 -- 发布时间:2018/7/12 22:13:00 -- 以下是引用tkxffb在2018/7/12 21:49:00的发言:
有点甜老师,这种处理方法没法在项目发布时使用吧?
设置以后,拷贝代码出来不就好了?
或者,可以直接写代码 http://www.foxtable.com/webhelp/scr/1372.htm
|
-- 作者:tkxffb -- 发布时间:2018/7/14 19:02:00 -- 谢谢,纵向合计用合计模式实现了。 |