以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  fxDataSource能不能增加支持直接赋值给DataTable内存?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147247)

--  作者:chen37280600
--  发布时间:2020/3/12 16:28:00
--  fxDataSource能不能增加支持直接赋值给DataTable内存?
这个fxDataSource表连接功能,其实很好用,
无奈它只有Show绑定到Table展示
不能像sqlJoinDatable的Build(True)只给内存

因为在bs里,没有table,要是能build给内存就好了

虽然我发现,要用到连接表的需求,80%情况下最终还是手写高难度sql才真达到需求,不过还是希望这个表连接功能能在bs发扬光大

--  作者:chen37280600
--  发布时间:2020/3/12 21:45:00
--  
自己顶
--  作者:狐狸爸爸
--  发布时间:2020/3/12 22:02:00
--  
测试通过:

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("进货单"))
Dim dt1 As fxDataSource
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.Totals.AddDef("数量","销售_数量") \'对数量进行统计
bd2.Totals.AddDef("金额","销售_金额") \'对金额进行统计
dt2 = bd2.BuildDataSource()

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

dt1.Combine("型号",dt2,"型号") \'将销售统计数据组合到进货统计数据
dt1.Combine("型号",dt3,"型号") \'将退货统计数据组合到进货统计数据
Tables("窗口3_Table1").DataSource = dt1

--  作者:chen37280600
--  发布时间:2020/3/12 22:13:00
--  
你的Table哪里来的?bs模式下,没table了···
--  作者:狐狸爸爸
--  发布时间:2020/3/12 22:35:00
--  
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("进货单"))
Dim dt1 As fxDataSource
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.Totals.AddDef("数量","销售_数量") \'对数量进行统计
bd2.Totals.AddDef("金额","销售_金额") \'对金额进行统计
dt2 = bd2.BuildDataSource()

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

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

For Each dr As Data.DataRow In dt1.Rows
    output.show(dr("型号"))
Next
For Each dc As Data.DataColumn In dt1.Columns
    output.show(dc.ColumnName)
Next


既然如此,你将dt1赋值给一个public 变量或一个VAr变量都可以的