以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  非关联表同步的条件问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=83250)

--  作者:douglas738888
--  发布时间:2016/4/5 12:54:00
--  非关联表同步的条件问题
请教老师,参照非关联表之间的数据同步,我加了个条件,如果参加投标的逻辑列勾选后,投标主表同步增加行,并把信息编号和项目名称带入增加行

是否我写的条件位置不对?

Select Case e.DataCol.name \'如果项目甄批意见勾选参加投标,项目主表参加投标勾选后,投标主表增加行
    Case "信息编号" 
        If e.DataRow("参加投标") = True  Then
        Dim dr1 As DataRow = DataTables("投标主表").Find("信息编号 = \'" & e.OldValue & "\'")
        If dr1 Is Nothing Then 
            dr1 = DataTables("投标主表").AddNew()
            dr1("信息编号") = e.DataRow("信息编号")
            dr1("项目名称") = e.DataRow("项目名称")
        Else
            dr1("信息编号") = e.DataRow("信息编号")
             End If
        End If
    Case "项目名称"
        Dim dr1 As DataRow = DataTables("投标主表").Find("信息编号 = \'" & e.DataRow("信息编号") & "\'")
        If dr1 IsNot Nothing Then
            dr1(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

--  作者:大红袍
--  发布时间:2016/4/5 15:06:00
--  
Select Case e.DataCol.name \'如果项目甄批意见勾选参加投标,项目主表参加投标勾选后,投标主表增加行
    Case "信息编号"
        Dim dr1 As DataRow = DataTables("投标主表").Find("信息编号 = \'" & e.OldValue & "\'")
        If dr1 Is Nothing Then
            dr1 = DataTables("投标主表").AddNew()
            dr1("信息编号") = e.DataRow("信息编号")
            dr1("项目名称") = e.DataRow("项目名称")
        Else
            dr1("信息编号") = e.DataRow("信息编号")
        End If
    Case "项目名称"
        Dim dr1 As DataRow = DataTables("投标主表").Find("信息编号 = \'" & e.DataRow("信息编号") & "\'")
        If dr1 IsNot Nothing Then
            dr1(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
    Case "参加投标"
        Dim dr1 As DataRow = DataTables("投标主表").Find("信息编号 = \'" & e.DataRow("信息编号") & "\'")
        If dr1 Is Nothing Then
            dr1 = DataTables("投标主表").AddNew()
        End If
        dr1("信息编号") = e.DataRow("信息编号")
        dr1("项目名称") = e.DataRow("项目名称")
End Select

--  作者:douglas738888
--  发布时间:2016/4/5 16:41:00
--  
对不起老师,我表达有点错误,是勾选项目信息表的逻辑列“参加投标”,投标主表才增加行,如果不勾选,就不增加行,代码调整如下,还有点问题(未引用对象实例),请老师在帮忙看看

Select Case e.DataCol.name 
    Case "参加投标"
        Dim dr1 As DataRow = DataTables("投标主表").Find("信息编号 = \'" & e.DataRow("信息编号") & "\'")
        If dr1 IsNot Nothing Then
           dr1 = DataTables("投标主表").AddNew() 
        End If
        dr1("信息编号") = e.DataRow("信息编号")
        dr1("项目名称") = e.DataRow("项目名称")
End Select
[此贴子已经被作者于2016/4/5 16:43:01编辑过]

--  作者:大红袍
--  发布时间:2016/4/5 16:51:00
--  
Select Case e.DataCol.name \'如果项目甄批意见勾选参加投标,项目主表参加投标勾选后,投标主表增加行
    Case "信息编号"
        Dim dr1 As DataRow = DataTables("投标主表").Find("信息编号 = \'" & e.OldValue & "\'")
        If dr1 IsNot Nothing Then
            dr1("信息编号") = e.DataRow("信息编号")
        End If
    Case "项目名称"
        Dim dr1 As DataRow = DataTables("投标主表").Find("信息编号 = \'" & e.DataRow("信息编号") & "\'")
        If dr1 IsNot Nothing Then
            dr1(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
    Case "参加投标"
        If e.DataRow("参加投标") = True Then
            Dim dr1 As DataRow = DataTables("投标主表").Find("信息编号 = \'" & e.DataRow("信息编号") & "\'")
            If dr1 Is Nothing Then
                dr1 = DataTables("投标主表").AddNew()
            End If
            dr1("信息编号") = e.DataRow("信息编号")
            dr1("项目名称") = e.DataRow("项目名称")
        End If
End Select

--  作者:douglas738888
--  发布时间:2016/4/5 16:52:00
--  
已解决,不知这样写,是否符合规则

Select Case e.DataCol.name \'如果项目甄批意见勾选参加投标,项目主表参加投标勾选后,投标主表增加行   
    Case "参加投标"
        Dim dr1 As DataRow = DataTables("投标主表").Find("信息编号 = \'" & e.DataRow("信息编号") & "\'")
        If dr1 Is Nothing Then
          If e.DataRow("参加投标") = True  Then
           dr1 = DataTables("投标主表").AddNew() 
        
        dr1("信息编号") = e.DataRow("信息编号")
        dr1("项目名称") = e.DataRow("项目名称")
    End If
  End If
End Select

--  作者:大红袍
--  发布时间:2016/4/5 17:32:00
--  
代码在4楼。