Foxtable(狐表)用户栏目专家坐堂 → [求助]组合统计后,怎么显示合计行,怎么调整行的排列顺序


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

主题:[求助]组合统计后,怎么显示合计行,怎么调整行的排列顺序

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


加好友 发短信
等级:幼狐 帖子:174 积分:1665 威望:0 精华:0 注册:2018/4/22 18:54:00
[求助]组合统计后,怎么显示合计行,怎么调整行的排列顺序  发帖心情 Post By: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 '将统计结果绑定到综合统计表


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


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

生成统计表以后,设置一次汇总模式

 

http://www.foxtable.com/webhelp/scr/00144.htm

 


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


加好友 发短信
等级:幼狐 帖子:174 积分:1665 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2018/7/12 21:49:00 [只看该作者]

有点甜老师,这种处理方法没法在项目发布时使用吧?

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


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

以下是引用tkxffb在2018/7/12 21:49:00的发言:
有点甜老师,这种处理方法没法在项目发布时使用吧?

 

设置以后,拷贝代码出来不就好了?

 

或者,可以直接写代码 http://www.foxtable.com/webhelp/scr/1372.htm

 


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


加好友 发短信
等级:幼狐 帖子:174 积分:1665 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2018/7/14 19:02:00 [只看该作者]

谢谢,纵向合计用合计模式实现了。

 回到顶部