![图片点击可在新窗口打开查看](data:image/png;base64,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)
请狐狸爸爸看看,感觉这样有点浪费代码。
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("入库"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("商品名称") '根据型号分组
bd1.groups.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.Totals.AddDef("出库数量","出库_数量") '对数量进行统计
dt2 = bd2.BuildDataSource()
Dim nms As String() = {"商品名称","月"} '指定连接列
dt1.Combine(nms,dt2,nms) '将销售统计数据组合到进货统计数据
Tables("窗口1_Table1").DataSource = dt1 '将统计结果绑定到Table
With DataTables("窗口1_Table1").DataCols '用表达式列计算库存数据
.Add("月底库存_数量",Gettype(Integer), "IsNull([入库_数量],0) - ISNULL([出库_数量],0)")
End With
Dim bd3 As New GroupTableBuilder("统计表3",DataTables("窗口1_Table1"))
Dim dt3 As fxDataSource
bd3.Groups.AddDef("商品名称") '根据型号分组
bd3.groups.adddef("月")
bd3.Totals.AddDef("入库_数量")
bd3.Totals.AddDef("出库_数量")
bd3.Totals.AddDef("月底库存_数量",True) '对数量进行统计
dt3 = bd3.BuildDataSource()
Tables("窗口1_Table1").DataSource = dt3
Tables("窗口1_Table1").sort = "月"