If e.DataCol.Name = "产品编号" Then
If e.NewValue Is Nothing Then
e.DataRow("品名") = Nothing
e.DataRow("型号") = Nothing
e.DataRow("规格") = Nothing
e.DataRow("单价") = Nothing
Else
Dim dr As DataRow
dr = DataTables("产品").Find("[产品编号] = '" & e.NewValue & "'")
If dr IsNot Nothing
e.DataRow("品名") = dr("品名")
e.DataRow("型号") = dr("型号")
e.DataRow("规格") = dr("规格")
e.DataRow("单价") = dr("单价")
End If
End If
End If
如果有十几列甚至更多列的数据需要继承,上面代码可能会显得过于繁琐,为此我们可以考虑将代码改写为:
If
e.DataCol.Name = "产品编号" Then
Dim nms() As String = {"品名","型号","规格","单价"}
If e.NewValue Is Nothing Then
For Each nm As String In nms
e.DataRow(nm) = Nothing
Next
Else
Dim dr As DataRow
dr = DataTables("产品").Find("[产品编号] = '" & e.NewValue & "'")
If dr IsNot Nothing
For Each nm As String In nms
e.DataRow(nm) = dr(nm)
Next
End If
End If
End If
狐爸,能否麻烦你帮我将下面的代码像上面的跨表引用案例一样 整合一下? 感谢!
Select Case e.DataCol.Name
Case "第一列","第二列","第三列","第四列","第五列","第六列","第七列"
Dim kh As String = e.DataRow("第一列")
Dim kh1 As String = e.DataRow("第二列")
Dim kh2 As String = e.DataRow("第三列")
Dim kh3 As String = e.DataRow("第四列")
Dim kh4 As String = e.DataRow("第五列")
Dim kh5 As String = e.DataRow("第六列")
Dim kh6 As String = e.DataRow("第七列")
Dim tj = "第一列 = '" & kh & "'And 第二列 ='" & kh1 & "'And 第三列 ='" & kh2 & "'And 第四列 ='" & kh3 & "'And 第五列 ='" & kh4 & "'And 第六列 ='" & kh5 & "'And 第七列 ='" & kh6 & "'"
If kh >"" And kh1> "" And kh2> ""And kh3> "" And kh4> "" And kh5> "" And kh6> "" Then
If DataTables("表B").Find(tj) Is Nothing Then
Dim dr As DataRow = DataTables("表B").AddNew()
dr("第一列") = kh
dr("第二列") = kh1
dr("第三列") = kh2
dr("第四列") = kh3
dr("第五列") = kh4
dr("第六列") = kh5
dr("第七列") = kh6
End If
End If
End Select