组合后台统计结果
我们知道,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