以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]我的表事件代码应该怎样写才对呢?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=54238)

--  作者:rophy0952
--  发布时间:2014/7/24 10:54:00
--  [求助]我的表事件代码应该怎样写才对呢?
请教一个关于多行数值变化的数据引用,表事件的设置应该是怎样设呢?即:蒸镀派工表引用的是窗口的蒸镀派工表的数据,当蒸镀派工表的派工件数发生变化的时候,生产主表中的"蒸镀已派工件数"随着发生变化,同时"蒸镀未派工件数"也发生变化.
我在蒸镀派工表的表事件datacolchanged中写入的代码为:
Dim dr As DataRow = e.DataRow
dr = DataTables("生产主表").find("生产单号 = \'" & Tables("蒸镀派工表").Current("生产单号") & "\'")
Select Case e.DataCol.Name
    Case "派工件数"
        dr("蒸镀已派工件数") = DataTables("蒸镀派工表").Compute("sum(派工件数)","生产单号 = \'" & Tables("蒸镀派工表").Current("生产单号") & "\'")
End Select

在生产主表的表事件datacolchanged中写入的代码为:
If e.DataCol.Name = "蒸镀已派工件数" Then
Dim r As Row = Tables("生产主表").Current
r("蒸镀未派工件数") = r("件数") - r("蒸镀已派工件数")
End If

\'---------------------------------------
If e.DataCol.Name = "蒸镀未派工件数" Then
Dim r As Row = Tables("生产主表").Current
If r("蒸镀未派工件数") = 0 Then
r("蒸镀已派工") = True
Else
r("蒸镀已派工") = False
End If
End If

如果同时引用两条以上数据的时候,生产主表中的蒸镀已派工件数,只变化一行,其它行不变,详见图例,请问该如何修改代码?谢谢

--  作者:Bin
--  发布时间:2014/7/24 10:58:00
--  
find  改为select


--  作者:有点甜
--  发布时间:2014/7/24 11:01:00
--  

改一下

 

 

在蒸镀派工表的表事件datacolchanged中写入的代码为:

Select Case e.DataCol.Name
    Case "派工件数"
        Dim sum As Double = DataTables("蒸镀派工表").Compute("sum(派工件数)","生产单号 = \'" & e.DataRow("生产单号") & "\'")
        DataTables("生产主表").ReplaceFor("蒸镀已派工件数", sum, "生产单号 = \'" &  e.DataRow("生产单号") & "\'")
End Select


\'在生产主表的表事件datacolchanged中写入的代码为:
If e.DataCol.Name = "蒸镀已派工件数" Then
    r("蒸镀未派工件数") = e.DataRow("件数") - e.DataRow("蒸镀已派工件数")
End If


\'---------------------------------------
If e.DataCol.Name = "蒸镀未派工件数" Then
    If e.DataRow("蒸镀未派工件数") = 0 Then
        e.DataRow("蒸镀已派工") = True
    Else
        e.DataRow("蒸镀已派工") = False
    End If
End If


--  作者:rophy0952
--  发布时间:2014/7/24 11:18:00
--  
可以了, e.datarow("蒸镀未派工件数") = e.DataRow("件数") - e.DataRow("蒸镀已派工件数"),这样写对吧?


--  作者:rophy0952
--  发布时间:2014/7/24 11:18:00
--  
谢谢!