组合后台统计结果

我们知道,GroupTableBuilder和CrossTableBuilder有一个名为FromServer的属性,只需将此属性设为True,即可直接统计后台数据。
此外Foxtable还提供了两个专门用于统计后台数据的工具:SQLGroubpTableBuilder和SQLCrossTableBuilder。
多个后台统计的统计结果,同样可以组合起来.

示例一

打开CaseStudy目录下的文件“组合统计结果.Table”,然后在命令窗口执行执行下面的代码:

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("进货单"))
Dim
dt1 As fxDataSource
bd1.FromServer =
True
bd1
.Groups.AddDef("型号") '根据型号分组
bd1.Totals.AddDef(
"数量","进货数量") '对数量进行统计
dt1 = bd1.BuildDataSource()

Dim
bd2 As New GroupTableBuilder("统计表2",DataTables("销售单"))
Dim
dt2 As fxDataSource
bd2.FromServer =
True
bd2.Groups.AddDef(
"型号") '根据型号分组
bd2.Totals.AddDef(
"数量","销售数量") '对数量进行统计
dt2 = bd2.BuildDataSource()

Dim
bd3 As New GroupTableBuilder("统计表3",DataTables("退货单"))
Dim
dt3 As fxDataSource
bd3.FromServer =
True
bd3.Groups.AddDef(
"型号") '根据型号分组
bd3.Totals.AddDef(
"数量","退货数量") '对数量进行统计
dt3 = bd3.BuildDataSource()
dt1.Combine(
"型号",dt2,"型号") '将销售统计数据组合到进货统计数据
dt1.Combine(
"型号",dt3,"型号") '将退货统计数据组合到进货统计数据
dt1.Show(
"统计表1") '显示统计结果

即可得到不同型号产品的进货数量、销售数量和退货数量。

示例二

由于使用GroupTableBuilder统计后台数据时,不能包括表达式列,所以如果需要同时统计数量和金额,只能改用SQLGroupTableBuilder:

Dim bd1 As New SQLGroupTableBuilder("统计表1","进货单")
Dim
dt1 As fxDataSource
bd1.Groups.AddDef(
"型号") '根据型号分组
bd1
.Totals.AddDef("数量","进货_数量") '对数量进行统计
bd1
.Totals.AddExp("进货_金额","数量 * 单价") '对金额进行统计
dt1
= bd1.BuildDataSource()

Dim
bd2 As New SQLGroupTableBuilder("统计表2","销售单")
Dim
dt2 As fxDataSource
bd2.Groups.AddDef(
"型号") '根据型号分组
bd2
.Totals.AddDef("数量","销售_数量") '对数量进行统计
bd2.Totals.AddExp(
"销售_金额","数量 * 售价") '对金额进行统计
dt2
= bd2.BuildDataSource()

Dim
bd3 As New SQLGroupTableBuilder("统计表3","退货单")
Dim
dt3 As fxDataSource
bd3.Groups.AddDef(
"型号") '根据型号分组
bd3
.Totals.AddDef("数量","退货_数量") '对数量进行统计
bd3
.Totals.AddExp("退货_金额","数量 * 单价") '对金额进行统计
dt3
= bd3.BuildDataSource()

dt1
.Combine("型号",dt2,"型号") '将销售统计数据组合到进货统计数据
dt1
.Combine("型号",dt3,"型号") '将退货统计数据组合到进货统计数据
dt1
.Show("统计表1") '显示统计结果


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