以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  需求数量计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=83054)

--  作者:qinlao666
--  发布时间:2016/3/30 13:16:00
--  需求数量计算

If e.DataCol.Name = "订单数量" Then
    For Each dr As DataRow In e.DataRow.GetChildRows("BOM清单")
        dr("需求数量") = dr("单件数量") * e.DataRow("订单数量")
    Next
End If

 

能主动计算当前行的需求数量,而不要像向上面命令那样,需要更改订单数量,才能计算

请老师赐教,谢谢!


--  作者:qinlao666
--  发布时间:2016/3/30 13:37:00
--  
老师,请帮忙解决下
--  作者:qinlao666
--  发布时间:2016/3/30 13:49:00
--  
图片点击可在新窗口打开查看
--  作者:qinlao666
--  发布时间:2016/3/30 13:57:00
--  
老师,我的问题能解决吗?
--  作者:qinlao666
--  发布时间:2016/3/30 14:19:00
--  

Dim dr As DataRow
dr = DataTables("BOM清单").Find("[系列代号] = \'" & e.Table.Current("制造型号") & "\'")
If dr IsNot Nothing Then
    dr("需求数量") = dr("单件数量") *  e.Table.Current("订单数量")
End If

 

 

老师帮我看下这段代码哪有问题


--  作者:大红袍
--  发布时间:2016/3/30 14:22:00
--  

重置列

 

http://www.foxtable.com/help/topics/1587.htm

 


--  作者:大红袍
--  发布时间:2016/3/30 14:24:00
--  

 或者写代码

 

Dim r As Row = Tables("Bom清单").Current

Dim pdr As DataRow = r.DataRow.GetParentRow("订单")

If pdr IsNot Nothing Then

    r("需求数量") = r("单件数量") * pdr("订单数量")

End If


--  作者:qinlao666
--  发布时间:2016/3/30 14:31:00
--  
以下是引用大红袍在2016/3/30 14:24:00的发言:

 或者写代码

 

Dim r As Row = Tables("Bom清单").Current

Dim pdr As DataRow = r.DataRow.GetParentRow("订单")

If pdr IsNot Nothing Then

    r("需求数量") = r("单件数量") * pdr("订单数量")

End If

大红袍老师,这段代码写哪里


--  作者:大红袍
--  发布时间:2016/3/30 14:38:00
--  
 你可以写到比如CurrentChanged事件。
--  作者:大红袍
--  发布时间:2016/3/30 14:40:00
--  

你写到明细表的DataColchanged事件也可以。

 

If e.DataCol.name = "单件数量" Then
    Dim pdr As DataRow = e.DataRow.GetParentRow("订单")
   
    If pdr IsNot Nothing Then
       
        e.DataRow("需求数量") = e.DataRow("单件数量") * pdr("订单数量")
       
    End If
End If