以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  多表组合统计,怎么写多条件?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=75889)

--  作者:fox-man
--  发布时间:2015/10/16 17:09:00
--  多表组合统计,怎么写多条件?

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("进货单"))
Dim
dt1 As fxDataSource

bd1.Groups.AddDef("编号")

bd1.Groups.AddDef("产品")

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

bd1.Groups.AddDef("编号")

bd1.Groups.AddDef("产品")

bd1.Groups.AddDef("类型")
bd2
.Groups.AddDef("型号") \'根据型号分组
bd2
.Totals.AddDef("数量","销售_数量") \'对数量进行统计
bd2
.Totals.AddDef("金额","销售_金额") \'对金额进行统计
dt2
= bd2.BuildDataSource()

Dim bd3 As New GroupTableBuilder("统计表3",DataTables("退货单"))
Dim
dt3 As fxDataSource

bd1.Groups.AddDef("编号")

bd1.Groups.AddDef("产品")

bd1.Groups.AddDef("类型")
bd3
.Groups.AddDef("型号") \'根据型号分组
bd3
.Totals.AddDef("数量","退货_数量") \'对数量进行统计
bd3
.Totals.AddDef("金额","退货_金额") \'对金额进行统计
dt3 = bd3.BuildDataSource()

dt1.Combine("型号",dt2,"型号") \'将销售统计数据组合到进货统计数据
dt1
.Combine("型号",dt3,"型号") \'将退货统计数据组合到进货统计数据

Tables("窗口1_Table1").DataSource = dt1 \'将统计结果绑定到Table
With
DataTables("窗口1_Table1").DataCols  \'用表达式列计算库存数据
   
.Add("库存_数量",Gettype(Integer), "IsNull([进货_数量],0) - ISNULL([销售_数量],0) - ISNULL([退货_数量],0)")
   
.Add("库存_金额",Gettype(Double), "[库存_数量] /[进货_数量] * [进货_金额]"
End With

 

 

 

加粗部分多条件怎么写啊?

[此贴子已经被作者于2015/10/16 17:12:10编辑过]

--  作者:大红袍
--  发布时间:2015/10/16 17:14:00
--  

bd1.Filter = "xxxxx"

dt1 = bd1.BuildDataSource()

 

bd2.Filter = "xxxxx"

dt2 = bd2.BuildDataSource()

[此贴子已经被作者于2015/10/16 17:14:20编辑过]

--  作者:fox-man
--  发布时间:2015/10/16 17:16:00
--  
以下是引用大红袍在2015/10/16 17:14:00的发言:

bd1.Filter = "xxxxx"

dt1 = bd1.BuildDataSource()

 

bd2.Filter = "xxxxx"

dt2 = bd2.BuildDataSource()

[此贴子已经被作者于2015/10/16 17:14:20编辑过]

bd1
bd2
bd3

都有相同列,且都要取等值条件.

 

[此贴子已经被作者于2015/10/16 17:30:15编辑过]

--  作者:大红袍
--  发布时间:2015/10/16 17:17:00
--  

多个连接列的意思?

 

http://www.foxtable.com/help/topics/2392.htm

 


--  作者:fox-man
--  发布时间:2015/10/16 17:29:00
--  

dt1.Combine("编号",dt2,"编号")
dt1
.Combine("产品",dt2,"产品")

dt1.Combine("类别",dt2,"类别")

dt1.Combine("型号",dt2,"型号")

dt1.Combine("编号",dt3,"编号")
dt1
.Combine("产品",dt3,"产品")

dt1.Combine("类别",dt3,"类别")

dt1.Combine("型号",dt3,"型号")

 

想要这样的条件

[此贴子已经被作者于2015/10/16 17:29:58编辑过]

--  作者:大红袍
--  发布时间:2015/10/16 17:30:00
--  
看4楼。
--  作者:fox-man
--  发布时间:2015/10/17 8:40:00
--  
ok!