以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  属性运行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55914)

--  作者:lfxxdt
--  发布时间:2014/8/26 9:59:00
--  属性运行
Dim Cols1() As String = {"工序","流程"}
          Dim Cols2() As String = {"工序","流程"}
          For Each dr4 As DataRow In DataTables("产品生产流程").Select("名称=  \'" & dr6("流程") & "\'")
          Dim dr5 As DataRow = DataTables("生产计划跟单").AddNew()
          For i As Integer = 0 To Cols1.Length -1
            dr5(Cols2(i)) = dr4(Cols1(i))
            dr5("产品编号") = r("产品编号")
            dr5("规格型号") = r("规格型号")
            dr5("评审编号") = r("评审编号")
          Next
以上代码我是通过其它表按钮向生产计划跟单中自动添加的,而生产计划跟单表属性我编写了代码,这些自动添加上去的数据,怎么表属性的代码不能运行。
--  作者:有点甜
--  发布时间:2014/8/26 10:00:00
--  
 呃,你写了 生产计划跟单 表属性 的什么事件的代码?datacolchanged?
--  作者:lfxxdt
--  发布时间:2014/8/26 10:02:00
--  
datacolchanged? 是在这个表属性中编写的代码
--  作者:有点甜
--  发布时间:2014/8/26 10:14:00
--  

 呃,你想说什么?表属性什么事件编写的代码不运行?

 你执行1楼的代码,只会触发 DateRowAdded 和 DatacolChanged 事件


--  作者:lfxxdt
--  发布时间:2014/8/26 10:21:00
--  

If e.DataCol.Name = "产品编号" Then
    Dim dr As DataRow = DataTables("生产计划标准").Find("产品编号= \'" & e.DataRow("产品编号") & "\' and 流程 = \'" & e.DataRow("流程") & "\'")
    If dr IsNot Nothing  Then
        e.DataRow("质量标准") = dr("质量累加")
        e.DataRow("时间标准") = dr("时间累加")
    End If
End If

 

以上代码在表属性DatacolChanged 事件不能运行


--  作者:Bin
--  发布时间:2014/8/26 10:23:00
--  
那说明你 DR 是空的,没有找到符合条件的行
--  作者:有点甜
--  发布时间:2014/8/26 10:39:00
--  

 你的代码这样改一下应该可以

 

Dim Cols1() As String = {"工序","流程"}
Dim Cols2() As String = {"工序","流程"}
For Each dr4 As DataRow In DataTables("产品生产流程").Select("名称=  \'" & dr6("流程") & "\'")
    Dim dr5 As DataRow = DataTables("生产计划跟单").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr5(Cols2(i)) = dr4(Cols1(i))
    Next
    dr5("产品编号") = r("产品编号")
    dr5("规格型号") = r("规格型号")
    dr5("评审编号") = r("评审编号")