常见交叉统计示例

在学习本课的内容之前,请打开示例文件"统计演示.Table"。 

示例一,统计同一客户订购不同产品的数量

将下面的代码复制到命令窗口执行:

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))
b.HGroups.AddDef("
客户") '添加客户列用于水平分组
b.VGroups.AddDef("
产品") '添加产品列用于垂直分组
b.Totals.AddDef("
数量") '添加数量列用于统计
b.Build '
生成统计表
Maintable = Tables("统计表1") '打开生成的统计表

统计结果:

 

示例二,美化示例一 

将示例一的代码修改为: 

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))

b.HGroups.AddDef("客户") '添加客户列用于水平分组

b.VGroups.AddDef("产品","产品_{0}") '添加产品列用于垂直分组,并设置了Pattern参数

b.Totals.AddDef("数量") '添加数量列用于统计

b.Build '生成统计表
Maintable = Tables("统计表1") '打开生成的统计表

统计结果:

示例三,统计同一个客户订购不同产品的数量和金额 

将下面的代码复制到命令窗口执行:

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))

b.HGroups.AddDef("客户") '添加客户列用于水平分组

b.VGroups.AddDef("产品") '添加产品列用于垂直分组

b.Totals.AddDef("数量") '添加数量列用于统计
b.Totals.AddDef("金额")
'添加数量列用于统计

b
.Build '生成统计表
Maintable = Tables("统计表1") '打开生成的统计表

统计结果:

示例四,重复示例三,同种类型的统计排列在一起 

示例三中,同一种产品的统计数据判列在一起,如果希望同种类型的统计数据排列在一起,以便于比较,可将代码修改为:

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))

b.HGroups.AddDef("客户") '添加客户列用于水平分组

b.VGroups.AddDef("产品") '添加产品列用于垂直分组

b.Totals.AddDef("数量") '添加数量列用于统计
b.Totals.AddDef("金额")
'添加数量列用于统计

b.OrderByTotal = True '同种类型的统计数据排列在一起

b.Build '生成统计表
Maintable = Tables("统计表1") '打开生成的统计表

统计结果:

示例五:统计同一客户不同月份的订购数量 

将下面的代码复制到命令窗口执行:

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))

b.HGroups.AddDef("客户") '添加客户列用于水平分组

b.VGroups.AddDef("日期","{0}月") '添加日期列用于垂直分组

b.Totals.AddDef("数量") '添加数量列用于统计
b.Build '生成统计表
Maintable = Tables("统计表1") '打开生成的统计表 

统计结果:

示例六,按年月统计每个客户的订购数量 

将下面的代码复制到命令窗口执行:

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))

b.HGroups.AddDef("客户") '添加客户列用于水平分组

b.VGroups.AddDef("日期",DateGroupEnum.Year,"{0}年") '添加日期列用于垂直分组,按年分组
b.VGroups.AddDef("日期","{0}月") '添加日期列用于垂直分组,按月分组

b.Totals.AddDef("数量") '添加数量列用于统计
b.Build '生成统计表
Maintable = Tables("统计表1") '打开生成的统计表 

统计结果:

示例七,重复示例六,在垂直和水平方向加上汇总

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))

b.HGroups.AddDef("客户") '添加客户列用于水平分组

b.VGroups.AddDef("日期",DateGroupEnum.Year,"{0}年") '添加日期列用于垂直分组,按年分组

b.VGroups.AddDef("日期","{0}月") '添加日期列用于垂直分组,按月分组

b.Totals.AddDef("数量") '添加数量列用于统计

b.VerticalTotal= True '垂直汇总

b.HorizontalTotal = True '水平汇总

b.Build '生成统计表

MainTable = Tables("统计表1") '打开生成的统计表

统计结果:

提示: 垂直方向自动汇总现在比较少用了,因为CrossTableBuilder已经可以对生成的统计结果进行二次统计,直接生成汇总模式了,下面会有专门一节对此进行介绍。

示例八,重复示例六,但是水平分组和垂直分组对调

将下面的代码复制到命令窗口执行:

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))

b.HGroups.AddDef("日期",DateGroupEnum.Year,"年") '添加日期列用于水平分组,按年分组

b.HGroups.AddDef("日期","月") '添加日期列用于水平分组,按月分组

b.VGroups.AddDef("客户","客户_{0}") '添加客户列用于垂直分组

b.Totals.AddDef("数量") '添加数量列用于统计
b.Build '生成统计表
Maintable = Tables("统计表1") '打开生成的统计表 

统计结果:

示例九,多个水平分组

 

统计不同产品和客户,在各月份的销售数量,将下面的代码复制到命令窗口执行: 

 

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))

b.HGroups.AddDef("客户") '添加客户列用于水平分组

b.HGroups.AddDef("产品") '添加客户列用于水平分组

b.VGroups.AddDef("日期",DateGroupEnum.Year,"{0}年") '添加日期列用于垂直分组,按年分组
b.VGroups.AddDef("日期","{0}月") '添加日期列用于垂直分组,按月分组

b.Totals.AddDef("数量") '添加数量列用于统计
b.Build '生成统计表
Maintable = Tables("统计表1") '打开生成的统计表

统计结果:


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