以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]统计求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=80284)

--  作者:huhu
--  发布时间:2016/1/19 23:14:00
--  [求助]统计求助

图片点击可在新窗口打开查看此主题相关图片如下:统计.png
图片点击可在新窗口打开查看
怎么感觉没新增一个入库单号的总数量。其他入库单号的总数量也会自动增加新的入库单号的总数量。这是怎么回事?
这是代码,感觉应该没问题。
For Each r As DataRow In DataTables("U8物料数量汇总表").DataRows
    Dim dr As DataRow = DataTables("U8物料编码入库单统计").Find("入库单号 = \'" & r("入库单号") & "\'")
    If dr IsNot Nothing Then
        dr("总数量") = dr("总数量") + r("总数量")
    Else
        Dim ddr As DataRow = DataTables("U8物料编码入库单统计").AddNew
        ddr("入库单号") = r("入库单号")
        ddr("总数量") = r("总数量")
        ddr("生成入库单时间") = r("生成入库单时间")
    End If
Next

--  作者:Hyphen
--  发布时间:2016/1/20 8:39:00
--  
没明白表达的意思。代码看不出什么问题。


试试加上DataTables("U8物料编码入库单统计").Save

--  作者:大红袍
--  发布时间:2016/1/20 9:25:00
--  
代码没问题。有问题。做具体例子测试。
--  作者:huhu
--  发布时间:2016/1/20 15:08:00
--  


入库单号如果不重复,那估计应该是对的。
但是入库单号重复的呢,再次循环,发现在统计表已经存在这个入库单号了,就再次把每行的总数量加一遍。

--  作者:huhu
--  发布时间:2016/1/20 15:09:00
--  
总算可以上传附件了。

图片点击可在新窗口打开查看此主题相关图片如下:u8物料数量汇总表.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2016/1/20 15:24:00
--  

那就是你的计算方式不对啊。

 

1、数据一定要保留,不要删除数据;

 

2、不要用累加的方式,要用compute的方式重新统计数据。


--  作者:huhu
--  发布时间:2016/1/20 15:39:00
--  
对,之前累加的计算方式有问题。要重新compute才行。
多谢。
For Each r As DataRow In DataTables("U8物料数量汇总表").DataRows
    Dim dr As DataRow = DataTables("U8物料编码入库单统计").Find("入库单号 = \'" & r("入库单号") & "\'")
    If dr IsNot Nothing Then
        Dim total As Integer = DataTables("U8物料数量汇总表").Compute("Sum(总数量)","入库单号 = \'" & r("入库单号") & "\'")
        dr("总数量") = total
    Else
        Dim ddr As DataRow = DataTables("U8物料编码入库单统计").AddNew
        ddr("入库单号") = r("入库单号")
        ddr("总数量") = r("总数量")
        ddr("生成入库单时间") = r("生成入库单时间")
    End If
Next