以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多表组合统计问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85336)

--  作者:lesliecheung912
--  发布时间:2016/5/23 16:23:00
--  多表组合统计问题
对于同一个表不同条件统计出的数据可不可以组合统计?
代码如下:

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

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("销售单"))
Dim
dt2 As fxDataSource
bd2
.Groups.AddDef("品名") \'根据品名分组
bd2
.Groups.AddDef("型号") \'根据型号分组

bd2.Filter = "订单日期 >=\'2016-01-01\' and 订单日期 <= \'2016-01-31\'"
bd2
.Totals.AddDef("数量","2016年销售_数量") \'对数量进行统计
bd2
.Totals.AddDef("金额","2016年销售_金额") \'对金额进行统计
dt2
= bd2.BuildDataSource()

Dim bd3 As New GroupTableBuilder("统计表3",DataTables("销售单"))
Dim
 dt3 As fxDataSource
bd3
.Groups.AddDef("品名"\'根据品名分组
bd3
.Groups.AddDef("型号"\'根据型号分组

bd3.Filter = "订单日期 >=\'2016-05-01\' and 订单日期 <= \'2016-05-31\'"
bd3.Totals.AddDef("数量","5月份销售_数量"\'对数量进行统计
bd3
.Totals.AddDef("金额","5月份销售_金额"\'对金额进行统计
dt3
 = bd3.BuildDataSource()

Dim nms As String() = {"品名","型号"} \'指定连接列
dt1.Combine(nms,dt2,nms) \'将销售统计数据组合到进货统计数据
dt1.Combine(nms,dt3,nms) \'将退货统计数据组合到进货统计数据
dt1.Show("统计表1") \'显示统计结果


以上代码貌似不可行啊!


--  作者:大红袍
--  发布时间:2016/5/23 16:25:00
--  

bd2.Filter = "订单日期 >=\'2016-01-01\' and 订单日期 <= \'2016-01-31\'"

 

改成

 

bd2.Filter = "订单日期 >=#2016-01-01# and 订单日期 <= #2016-01-31#"

 

或者,去掉,先测试


--  作者:lesliecheung912
--  发布时间:2016/5/23 17:09:00
--  
还是不可以。
我的意思是 对于表“销售单”有两个不同的条件得出的统计数据,能不能组合到一起?
用你的方法还是提示 “未将对象引用设置到对象的实例”。

--  作者:大红袍
--  发布时间:2016/5/23 17:13:00
--  
 可以的啊,上传实例说明。