以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于Combine方法的请教  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=12639)

--  作者:kylin
--  发布时间:2011/9/10 9:37:00
--  关于Combine方法的请教

用于组合多个fxDataSource对象,

如果是两个统计表,按帮助说明执行,

 

如果是一个统计表,一个普通表,那么该如何?

例子:

统计表:

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

 

普通表:

产品明细表——字段{"型号","大类","明细类","产品名称"}

 

目标结果是要达到字段{"大类","明细类","产品名称","型号","进货_数量","进货_金额"} 

 


 

 

[此贴子已经被作者于2011-9-10 9:36:51编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/9/10 10:02:00
--  

没有没有办法,等下次更新,告诉你一个办法。


--  作者:kylin
--  发布时间:2011/9/10 10:10:00
--  

哦,那就等等,谢谢先!


--  作者:紙上不談兵
--  发布时间:2011/9/10 10:47:00
--  
嘻嘻,不用等,現在就可以:

Dim jb1 As New SQLJoinTableBuilder("查询","A")
jb1.AddCols("大类","明细类","产品名称","型号")
Dim dt1 As fxDataSource
dt1 = jb1.BuildDataSource()

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

dt1.Combine("型号",dt2,"型号") \'
Tables("窗口1_Table1").DataSource =dt1

--  作者:kylin
--  发布时间:2011/9/10 13:06:00
--  
以下是引用紙上不談兵在2011-9-10 10:47:00的发言:
嘻嘻,不用等,現在就可以:

Dim jb1 As New SQLJoinTableBuilder("查询","A")
jb1.AddCols("大类","明细类","产品名称","型号")
Dim dt1 As fxDataSource
dt1 = jb1.BuildDataSource()

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

dt1.Combine("型号",dt2,"型号") \'
Tables("窗口1_Table1").DataSource =dt1

谢谢提示,不过需要更改一下后2句代码:


dt2.Combine("型号",dt1,"型号") \'
Tables("窗口1_Table1").DataSource =dt2
 
虽然如此,以上仍然有些不足的,居然不会完全关联的——dt2中相同的型号的只会在第一条对应取得dt1中的值,其他的却不会取值

--  作者:紙上不談兵
--  发布时间:2011/9/10 13:17:00
--  
以下是引用kylin在2011-9-10 13:06:00的发言:

谢谢提示,不过需要更改一下后2句代码:


dt2.Combine("型号",dt1,"型号") \'
Tables("窗口1_Table1").DataSource =dt2
 
虽然如此,以上仍然有些不足的,居然不会完全关联的——dt2中相同的型号的只会在第一条对应取得dt1中的值,其他的却不会取值

我測試正常啊:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:组合统计结果.table


--  作者:kylin
--  发布时间:2011/9/10 13:31:00
--  
下载看了一下,果然没有问题,我检查一下我的数据情况,可是事实还是这样的呀
--  作者:紙上不談兵
--  发布时间:2011/9/10 14:00:00
--  
那麼肯定有一個錯誤,不會兩個數據正確,但結果一正一反的.
--  作者:紙上不談兵
--  发布时间:2011/9/10 17:47:00
--  
以下是引用kylin在2011-9-10 13:31:00的发言:
下载看了一下,果然没有问题,我检查一下我的数据情况,可是事实还是这样的呀
可能你的數據有空格所至吧

[此贴子已经被作者于2011-9-10 18:05:31编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/9/11 17:55:00
--  

Combine也可以直接作为一个函数使用:

 

Combine(DataTables("表1").BaseTable,"连接列",DataTables("表2").BaseTable,"连接列")