各位老师,下面是我写的组合统计代码,现在有两个问题请老师指点: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 '将统计结果绑定到综合统计表