以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  同一张表中汇总出库数量  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184608)

--  作者:nuoyan89
--  发布时间:2022/12/15 19:51:00
--  同一张表中汇总出库数量
老师,我想在同一张表中做后台更新,就是”出入库明细“这个表里有入库明细,入库类型为“在库”,对应的出库数量想也在《出入库明细》中统计,根据成品编码、采购订单号、单据类型为“出库”,把出库数量合计到对应的入库订单明细中


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2022/12/15 20:15:17编辑过]

--  作者:有点蓝
--  发布时间:2022/12/15 20:24:00
--  
http://www.foxtable.com/webhelp/topics/0677.htm
--  作者:nuoyan89
--  发布时间:2022/12/15 21:45:00
--  
老师,表里有单据类型这一列,请帮忙看看,谢谢

Dim b As New GroupTableBuilder("统计表1", DataTables("出入库明细"))
b.Filter = "[单据类型] = \'出库\'" 
b.Groups.AddDef("成品编码") \'根据产品分组
b.Groups.AddDef("采购订单号") \'根据产品分组
b.Totals.AddDef("出库数量") \'对数量进行统计
Dim dt1 As DataTable = b.Build(True)
Dim dr1 As DataRow
For Each dr4 As Row In Tables("出入库明细").Rows
    dr1 = dt1.find("成品编码 = \'" & dr4("成品编码") & "\' and 采购订单号 = \'" & dr4("采购订单号") & "\' and 单据类型 = \'入库\'")
    If dr1 IsNot Nothing Then
        dr4("出库数量") = dr1("出库数量")
    End If
Next

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看



--  作者:有点蓝
--  发布时间:2022/12/15 22:05:00
--  
用的是统计表,统计表没有这个列
--  作者:nuoyan89
--  发布时间:2022/12/15 22:17:00
--  
老师,红色的提示没有这个列,我应该怎么改呢?
Dim b As New GroupTableBuilder("统计表1", DataTables("出入库明细"))
b.C
b.Groups.AddDef("成品编码") \'根据产品分组
b.Groups.AddDef("采购订单号") \'根据产品分组
b.Totals.AddDef("出库数量") \'对数量进行统计
b.Filter = "[单据类型] = \'出库\'"
Dim dt1 As DataTable = b.Build(True)
Dim dr1 As DataRow
For Each dr4 As Row In Tables("出入库明细").Rows
    dr1 = dt1.find("成品编码 = \'" & dr4("成品编码") & "\' and 采购订单号 = \'" & dr4("采购订单号") & "\' and 单据类型 = \'入库\'")
    If dr1 IsNot Nothing Then
        dr4("出库数量") = dr1("出库数量")
    End If
Next

--  作者:有点蓝
--  发布时间:2022/12/15 22:25:00
--  
遍历统计表,用主表查询
--  作者:nuoyan89
--  发布时间:2022/12/15 22:29:00
--  
啥意思,没懂,以下的是主表
For Each dr4 As Row In Tables("出入库明细").Rows

--  作者:有点蓝
--  发布时间:2022/12/15 23:01:00
--  
For Each dr4 As dataRow In dt1.dataRows
    dr1 = dataTables("出入库明细").find("成品编码 = \'" & dr4("成品编码") & "\' and 采购订单号 = \'" & dr4("采购订单号") & "\' and 单据类型 = \'入库\'")

--  作者:nuoyan89
--  发布时间:2022/12/15 23:18:00
--  
已解决
[此贴子已经被作者于2022/12/15 23:24:50编辑过]

--  作者:nuoyan89
--  发布时间:2022/12/15 23:40:00
--  
老师,我改成了以下用法了,因为后台表设置的是不加载,用了以下的代码后台数据还是不更新,帮忙看看,谢谢

Dim b As New SQLGroupTableBuilder("统计表1", DataTables("出入库明细"))
b.C
b.Groups.AddDef("成品编码") \'根据产品分组
b.Groups.AddDef("采购订单号") \'根据产品分组
b.Totals.AddDef("出库数量") \'对数量进行统计
b.Filter = "[单据类型] = \'出库\'"
Dim dt1 As DataTable = b.Build(True)
Dim dr1 As DataRow
For Each dr4 As Row In Tables("出入库明细").Rows
    For Each dr As DataRow In dt1.dataRows
        Dim drs As List(Of DataRow) = DataTables("出入库明细").sqlSelect("成品编码 = \'" & dr("成品编码") & "\' and 采购订单号 = \'" & dr("采购订单号") & "\' and 单据类型 = \'入库\'")
        For Each dr2 As DataRow In drs
            dr2("出库数量") = dr("出库数量")
        Next
        DataTables("出入库明细").load
        DataTables("出入库明细").SQLUpdate(drs)
    Next
Next
DataTables("出入库明细").Save()
[此贴子已经被作者于2022/12/16 1:52:01编辑过]