分组统计之汇总模式

在学习本课的内容之前,请打开CaseStudy目录下的示例文件"数据分析.Table"。

如果将GroupTableBuilder的Subtotal属性设置为True,那么就可以对分组统计结果进行二次统计,生成汇总模式。

示例一

按年月统计销售数量和金额,并生成汇总模式:

Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef(
"日期",DateGroupEnum.Year,"年") '添加日期列用于分组,并用"年"代替原名称
b.Groups.AddDef(
"日期","月") '添加日期列用于分组,并用"月"代替原名称
b.Totals.AddDef(
"数量") '添加数量列用于统计
b.Totals.AddDef("金额") '添加金额列用于统计
b.Subtotal = True '生成汇总模式
b.Build
'生成统计表
MainTable = Tables("统计表1") '打开生成的统计表

执行结果:

示例二

在默认情况下,系统会根据所有分组生成汇总模式,不过我们可以精确控制。
GroupTableBuilder有个名为SubtotalLevel的整数型属性,用于设置生成汇总模式的层数。
SubtotalLevel的默认值为-1,根据所有分组生成汇总模式;设为0,只生成总计行,设为1,根据第一个分组生成汇总模式;设为2,根据前两个分组生成汇总模式,其余类推。

例如按年月统计销售数量和金额,并生成汇总模式,但只生成总计行:

Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
b
.Groups.AddDef("日期",DateGroupEnum.Year,"年") '添加日期列用于分组,并用"年"代替原名称
b
.Groups.AddDef("日期","月") '添加日期列用于分组,并用"月"代替原名称
b
.Totals.AddDef("数量") '添加数量列用于统计
b
.Totals.AddDef("金额") '添加金额列用于统计
b
.Subtotal = True '生成汇总模式
B
.SubtotalLevel = 0 '只生成总计行
b
.Build '生成统计表
MainTable = Tables(
"统计表1") '打开生成的统计表

得到的统计结果:


本页地址:http://www.foxtable.com/webhelp/topics/2669.htm