以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]帮忙看一下这个代码有什么问题吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64789)

--  作者:rophy0952
--  发布时间:2015/3/2 9:55:00
--  [求助]帮忙看一下这个代码有什么问题吗?
有两个表A表和B表,当B表某列的值发生变化时,相关数据返回到A表的相关列。现在使用以下代码遇到一些问题,有些数据可以返回到有些数据返回不到A表相关列。而返回不到的那些,重置列以后也是返回不到。不知什么原因?
If e.DataCol.name = "半成品净重" Then
    Dim dr As DataRow = e.DataRow
    dr.save
    Dim d As Double = DataTables("分切工票信息").SQLCompute("sum(分切净重_合计)","流水号 = \'"& Tables("核数表").current("流水号") &"\'")
    For Each pr As DataRow In DataTables("分切工票信息").Select("流水号 = \'" & Tables("核数表").current("流水号") &"\'")
        If pr IsNot Nothing Then
            pr("半成品净重") = pr("分切净重_合计")/d *dr("半成品净重")
            pr.save
        End If
    Next
End If

[此贴子已经被作者于2015/3/2 9:55:06编辑过]

--  作者:有点甜
--  发布时间:2015/3/2 9:57:00
--  
If e.DataCol.name = "半成品净重" Then
    Dim dr As DataRow = e.DataRow
    dr.save
    Dim d As Double = DataTables("分切工票信息").SQLCompute("sum(分切净重_合计)","流水号 = \'" & e.DataRow("流水号") & "\'")
    For Each pr As DataRow In DataTables("分切工票信息").Select("流水号 = \'" & e.DataRow("流水号") & "\'")
        If pr IsNot Nothing Then
            pr("半成品净重") = pr("分切净重_合计")/d *dr("半成品净重")
            pr.save
        End If
    Next
End If

--  作者:有点甜
--  发布时间:2015/3/2 9:58:00
--  
先试试2楼的代码,代码没有问题,如果有问题,说明你 分切工票信息 的数据没有加载出来。
--  作者:Bin
--  发布时间:2015/3/2 9:58:00
--  
说明你流水号不相等.  多出了空格或者其他
--  作者:rophy0952
--  发布时间:2015/3/2 10:12:00
--  
试过,如果对于整个列进行重置就无法返回,如果对单独的行的列进行重置后,数据就可以返回。这是什么问题呢?
[此贴子已经被作者于2015/3/2 10:11:55编辑过]

--  作者:有点甜
--  发布时间:2015/3/2 10:17:00
--  
 是不是你重置错了列?看2楼的代码
--  作者:rophy0952
--  发布时间:2015/3/2 10:52:00
--  
按照有点甜的方法,重试一下,现在可以了,谢谢!