以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助个数据更新的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26202)

--  作者:even0898
--  发布时间:2012/11/27 10:03:00
--  求助个数据更新的代码

Select Case e.DataCol.Name
    Case  "数量_本次交"
        Dim dr As DataRow
         dr = DataTables("物料品牌明细").Find("料号 = \'" & e.DataRow("料号") &  "\'")
        If dr IsNot Nothing Then
            e.DataRow("数量_累交数") = DataTables("出库单明细").Compute("sum(数量_本次交)","客户订单号码 = \'" & e.DataRow("客户订单号码") & "\' And 料号 =\'" & e.DataRow("料号") & "\'")
            dr("当前库存") = dr("当前库存") - e.NewValue + e.OldValue
        End If

End Select

 


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

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

如图,如何在第一张送货单里更新累交数呢?{由20变为35}试了好多方法都没成功..


--  作者:lin_hailun
--  发布时间:2012/11/27 10:09:00
--  
 无从下手,不过,估计是个挺简单的问题。
--  作者:even0898
--  发布时间:2012/11/27 10:38:00
--  

问题解决,谢谢小林,代码分享一下。。有需要的同学可以参考,这个东东在实际业务流程中非常的常见。。。

Select Case e.DataCol.Name
    Case  "数量_本次交"
        Dim dr As DataRow
        dr = DataTables("物料品牌明细").Find("料号 = \'" & e.DataRow("料号") &  "\'")
        If dr IsNot Nothing Then
            Dim temp As Integer = DataTables("出库单明细").Compute("sum(数量_本次交)","客户订单号码 = \'" & e.DataRow("客户订单号码") & "\' And 料号 =\'" & e.DataRow("料号") & "\'")
            Dim drs As List(Of DataRow) = DataTables("出库单明细").Select("客户订单号码 = \'" & e.DataRow("客户订单号码") & "\' And 料号 =\'" & e.DataRow("料号") & "\'")
            For Each ndr As DataRow In drs
                ndr("数量_累交数") = temp
            Next
            dr("当前库存") = dr("当前库存") - e.NewValue + e.OldValue
        End If
End Select