以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何通过组合多个统计结果后台生成目录树  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=130675)

--  作者:无限5180
--  发布时间:2019/1/28 19:08: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("窗口1_Table1").DataSource = dt1 \'将统计结果绑定到Table
With
DataTables("窗口1_Table1").DataCols  \'用表达式列计算库存数据
   
.Add("库存_数量",Gettype(Integer), "IsNull([进货_数量],0) - ISNULL([销售_数量],0) - ISNULL([退货_数量],0)")
   
.Add("库存_金额",Gettype(Double), "[库存_数量] /[进货_数量] * [进货_金额]"
End With


窗口中增加目录树控件,如何不显示表后台直接生成目录树,请老师帮忙看看,谢谢!!!


--  作者:有点蓝
--  发布时间:2019/1/28 20:50:00
--  
……
dt1.Combine("型号",dt2,"型号") \'将销售统计数据组合到进货统计数据
dt1.Combine("型号",dt3,"型号") \'将退货统计数据组合到进货统计数据
Dim dt As DataTable  = dt1.ConvetToDataTable
\'Tables("窗口1_Table1").DataSource = dt1 \'将统计结果绑定到Table
With dt.DataCols  \'用表达式列计算库存数据
    .Add("库存_数量",Gettype(Integer), "IsNull([进货_数量],0) - ISNULL([销售_数量],0) - ISNULL([退货_数量],0)")
    .Add("库存_金额",Gettype(Double), "[库存_数量] /[进货_数量] * [进货_金额]") 
End With

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt,"型号")

--  作者:无限5180
--  发布时间:2019/1/29 6:52:00
--  
谢谢老师!!!
--  作者:无限5180
--  发布时间:2019/1/30 13:26:00
--  
我想再请问一下老师
如果生成的表想进一步筛选一下在生成目录树,例如上面的例子
我想在筛选一下  只有 "库存_数量<100"  的数据才能成目录树,应该如何设置

--  作者:有点甜
--  发布时间:2019/1/30 13:44:00
--  
trv.BuildTree(dt,"型号","库存_数量<100")

--  作者:无限5180
--  发布时间:2019/1/30 15:28:00
--  
谢谢!