以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据计算请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77947)

--  作者:yaojun
--  发布时间:2015/11/28 17:34:00
--  数据计算请教

If e.DataCol.name = "物料编号"
    If e.DataRow.IsNull("物料编号") = False
        Dim dr As DataRow = DataTables("其他出入").Find("物料编号 = \'" &e.DataRow("物料编号") & "\'","_Identify Desc")
        If dr IsNot Nothing Then
            e.DataRow("库存数量") = dr("库存数量") + e.DataRow("初始数据")     
  Else
            e.DataRow("库存数量") = Nothing
        End If
       
    Else
        e.DataRow("库存数量") = Nothing
    End If
End If

 

 

以上代码每次填写初始数据的时候库存数量都不会发生变化,要等其他出入表里面的库存数量发生变化时才变化,这样很不方便,请老师帮忙,怎样才能初始数据发生变化的时候,当前表的库存数量也跟着发生变化啊


--  作者:Hyphen
--  发布时间:2015/11/28 17:39:00
--  
Select Case e.DataCol.name
    Case "物料编号","初始数据"
        e.DataRow("库存数量") = Nothing
       
        If e.DataRow.IsNull("物料编号") = False Then
            Dim dr As DataRow = DataTables("其他出入").Find("物料编号 = \'" &e.DataRow("物料编号") & "\'","_Identify Desc")
            If dr IsNot Nothing Then
                e.DataRow("库存数量") = dr("库存数量") + e.DataRow("初始数据")
            End If
        End If
    End If
End Select

--  作者:yaojun
--  发布时间:2015/11/28 17:53:00
--  

这样是发生了变化,可是还不理想,因为如果其他出入没有行的时候,填写初始数据后,库存数量也不会发生变化,请教,谢谢


--  作者:Hyphen
--  发布时间:2015/11/28 18:05:00
--  
Select Case e.DataCol.name
    Case "物料编号","初始数据"
        e.DataRow("库存数量") = e.DataRow("初始数据")
        If e.DataRow.IsNull("物料编号") = False Then
            Dim dr As DataRow = DataTables("其他出入").Find("物料编号 = \'" &e.DataRow("物料编号") & "\'","_Identify Desc")
            If dr IsNot Nothing Then
                e.DataRow("库存数量") = dr("库存数量") + e.DataRow("初始数据")
            End If
        End If
    End If
End Select


--  作者:yaojun
--  发布时间:2015/11/28 18:14:00
--  

非常感谢,试用就是我所要,谢谢了,再请教下,如果改成以下呢:

If e.DataCol.name = "物料编号"
    If e.DataRow.IsNull("物料编号") Then
        e.DataRow("库存数量") = Nothing
    Else
        e.DataRow("库存数量") = e.DataRow("初始数据") + DataTables("入库明细").Compute("sum(入库数量)", "物料编号 = \'" &e.DataRow("物料编号") & "\'") - DataTables("散件明细").Compute("sum(出库数量)", "物料编号 = \'" &e.DataRow("物料编号") & "\'") - DataTables("领料明细").Compute("sum(出库数量)", "物料编号 = \'" &e.DataRow("物料编号") & "\'")
    End If
End If


--  作者:yaojun
--  发布时间:2015/11/28 18:24:00
--  

Select Case e.DataCol.name
    Case "物料编号","初始数据"
        e.DataRow("库存数量") = e.DataRow("初始数据")
        If e.DataRow.IsNull("物料编号") = False Then
           
                 e.DataRow("库存数量") = e.DataRow("初始数据") + DataTables("入库明细").Compute("sum(入库数量)", "物料编号 = \'" &e.DataRow("物料编号") & "\'") - DataTables("散件明细").Compute("sum(出库数量)", "物料编号 = \'" &e.DataRow("物料编号") & "\'") - DataTables("领料明细").Compute("sum(出库数量)", "物料编号 = \'" &e.DataRow("物料编号") & "\'")

            End If
End Select

 

 

请教代码这样写有什么问题吗,试用也可以达到效果,谢谢指导


--  作者:大红袍
--  发布时间:2015/11/29 13:14:00
--  
回复楼上,代码没问题。