以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  组合统计出错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=134858)

--  作者:mym950115
--  发布时间:2019/5/10 15:50:00
--  组合统计出错
Dim a As New GroupTableBuilder("入库表1",DataTables("电机壳生产明细")) Dim a1 As fxDataSource a.Groups.AddDef("规格") a.Groups.AddDef("物料编码") a.Groups.AddDef("入库工序","工序") a.Totals.AddDef("入库数量","入库_数量") a1 = a.BuildDataSource() Dim b As New GroupTableBuilder("领用表1",DataTables("电机壳生产明细")) Dim b1 As fxDataSource b.Groups.AddDef("规格") b.Groups.AddDef("物料编码") b.Groups.AddDef("领用工序","工序") b.Totals.AddDef("领用数量","领用_数量") b1 = b.BuildDataSource() Dim c As New GroupTableBuilder("出库表1",DataTables("出库明细表")) Dim c1 As fxDataSource c.Groups.AddDef("规格") c.Groups.AddDef("物料编码") c.Groups.AddDef("工序") c.Totals.AddDef("数量","出库_数量") c1 = c.BuildDataSource() Dim d As New GroupTableBuilder("结存表1",DataTables("结存表")) Dim d1 As fxDataSource d.Groups.AddDef("规格") d.Groups.AddDef("物料编码") d.Groups.AddDef("工序") d.Totals.AddDef("上期结存","结存_数量") d1 = d.BuildDataSource() Dim nms As String()={"规格", "物料编码", "工序"} a1.Combine(nms, d1,nms) b1.Combine(nms, d1,nms) c1.Combine(nms, d1,nms) Tables("窗口1_Table1").DataSource = d1 \'将统计结果绑定到Table With DataTables("窗口1_Table1").DataCols \'用表达式列计算库存数据 .Add("库存_数量",Gettype(Integer), "IsNull([结存_数量],0) + ISNULL([入库_数量],0) - ISNULL([领用_数量],0) - ISNULL([出库_数量],0) ") End With 这段代码中,最后显示是说,1.找不到入库数量 2.结存表中不存在库存_数量多列 不懂是为什么?
--  作者:有点甜
--  发布时间:2019/5/10 15:59:00
--  
请上传具体实例测试
--  作者:mym950115
--  发布时间:2019/5/10 16:10:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:组合统计出错_201905101606.zip


--  作者:有点甜
--  发布时间:2019/5/10 16:42:00
--  

Dim a As New GroupTableBuilder("入库表1",DataTables("电机壳生产明细"))
Dim a1 As fxDataSource
      a.Groups.AddDef("规格")
      a.Groups.AddDef("物料编码")
      a.Groups.AddDef("入库工序","工序")
      a.Totals.AddDef("入库数量","入库_数量")
a1 = a.BuildDataSource()
\'a.build
Dim b As New GroupTableBuilder("领用表1",DataTables("电机壳生产明细"))
Dim b1 As fxDataSource
      b.Groups.AddDef("规格")
      b.Groups.AddDef("物料编码")
      b.Groups.AddDef("领用工序","工序")
      b.Totals.AddDef("领用数量","领用_数量")
b1 = b.BuildDataSource()
\'b.build
Dim c As New GroupTableBuilder("出库表1",DataTables("出库明细表"))
Dim c1 As fxDataSource
      c.Groups.AddDef("规格")
      c.Groups.AddDef("物料编码")
      c.Groups.AddDef("工序")
      c.Totals.AddDef("数量","出库_数量")
c1 = c.BuildDataSource()
\'c.build
Dim d As New GroupTableBuilder("结存表1",DataTables("结存表"))
Dim d1 As fxDataSource
      d.Groups.AddDef("规格")
      d.Groups.AddDef("物料编码")
      d.Groups.AddDef("工序")
      d.Totals.AddDef("上期结存","结存_数量")
d1 = d.BuildDataSource()
\'d.build

Dim nms As String()={"规格", "物料编码", "工序"}
a1.Combine(nms, b1,nms)
a1.Combine(nms, c1,nms)
a1.Combine(nms, d1,nms)
\'
\'
Tables("窗口1_Table1").DataSource = a1 \'将统计结果绑定到Table

 With  DataTables("窗口1_Table1").DataCols  \'用表达式列计算库存数据
    .Add("库存_数量",Gettype(Integer), "IsNull([结存_数量],0) + ISNULL([入库_数量],0) - ISNULL([领用_数量],0) - ISNULL([出库_数量],0) ")
End With


--  作者:mym950115
--  发布时间:2019/5/11 12:33:00
--  
哈哈哈哈哈哈,非常感谢,是我太粗心了~~ 请问那他加什么代码能够变成一张现存的表啊,用 build 好像不能生成
--  作者:有点蓝
--  发布时间:2019/5/11 13:42:00
--  
只能生成临时表。要保存到数据库,先手工建好表,再把统计表结果填充过去:http://www.foxtable.com/webhelp/scr/1533.htm
--  作者:mym950115
--  发布时间:2019/5/11 16:32:00
--  
只能用手工填码吗??? 不能直接用filler?? 貌似 fxdatasource 不能作为 数据源, 这部分这么连接啊
--  作者:mym950115
--  发布时间:2019/5/11 16:40:00
--  
没事了,已经修正,谢谢~~
--  作者:mym950115
--  发布时间:2019/5/12 14:42:00
--  
你好,之前说可以将 临时表数据 填充, 那临时表必须要 展示出来吗? 代码中 不加 d1.show("结存表1")的话, filler 的时候会说没有表d1哎,这个这么做呀?
--  作者:有点甜
--  发布时间:2019/5/12 21:27:00
--  
以下是引用mym950115在2019/5/12 14:42:00的发言:
你好,之前说可以将 临时表数据 填充, 那临时表必须要 展示出来吗? 代码中 不加 d1.show("结存表1")的话, filler 的时候会说没有表d1哎,这个这么做呀?

 

你可以写代码隐藏,如

 

tables("结存表1").visible = false