我只是复制帮助的代码而已。
第二个问题,你可以自己写的啊,只是从表B找出对应的行,然后取值而已:
Select Case e.DataCol.Name
Case "附表编号列","合格数量","结账数量"
Dim dr As DataRow
Dim mr As DataRow = e.DataRow
Dim drs As List(of DataRow)
dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [附表编号列] = '" & mr("附表编号列") & "'", "[_SortKey] Desc")
If dr Is Nothing Then
mr("未结数量") = mr("合格数量") - mr("结账数量")
dr = mr
End If
drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [附表编号列] = '" & dr("附表编号列") & "'", "[_SortKey]")
For i As Integer = 1 To drs.Count - 1
drs(i)("未结数量") = drs(i-1)("未结数量") + drs(i)("合格数量") - drs(i)("结账数量")
Next
If e.DataCol.Name = "附表编号列" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [附表编号列] = '" & e.OldValue & "'", "[_SortKey] Desc")
If dr Is Nothing Then
dr = e.DataTable.Find("[附表编号列] = '" & e.OldValue & "'", "[_SortKey]")
If dr IsNot Nothing Then
dr("未结数量") = dr("合格数量") - dr("结账数量")
End If
End If
If dr IsNot Nothing Then
drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [附表编号列] = '" & dr("附表编号列") & "'", "[_SortKey]")
For i As Integer = 1 To drs.Count - 1
drs(i)("未结数量") = drs(i-1)("未结数量") + drs(i)("合格数量") - drs(i)("结账数量")
Next
End If
End If
End Select
Select Case e.DataCol.Name
Case "未结数量"
If e.NewValue = 0 Then
e.DataRow("结账情况")="已结账"
ElseIf e.DataRow("合格数量") =e.NewValue Then
e.DataRow("结账情况")="未结账"
ElseIf e.newValue < e.DataRow("合格数量") Or (e.DataRow.IsNull("合格数量") And e.NewValue > 0) Then
e.DataRow("结账情况")="结账中"
End If
Case "附表编号列"
Dim dr As DataRow = DataTables("表B").find("第一列B = '" & e.NewValue & "'")
If dr IsNot Nothing Then
e.DataRow("xxx") = dr("sss")
End If
End Select