子表BeforeAddDataRow限定了增加行的行数
Dim r As Row = Tables("申请单明细").Current
If r IsNot Nothing Then
If DataTables("申请单明细").Compute("Count(付款申请单编号)","付款申请单编号 = '" & r("付款申请单编号") & "'") >= 5 Then
e.Cancel = True
msgbox("明细行数已满,请新增一张凭证")
End If
满五行后主表DataColChanged有条件增加行代码出错,
调用的目标发生了异常。
未将对象引用设置到对象的实例。
Select Case e.DataCol.name
Case "付款申请编号"
Dim dr As DataRow = DataTables("申请单明细").Find("付款申请单编号 = '" & e.OldValue & "'")
Dim dt As DataRow = DataTables("税费").Find("付款申请单编号 = '" & e.OldValue & "'")
If dr Is Nothing And dt Is Nothing Then
dr = DataTables("申请单明细").AddNew()
dt = DataTables("税费").AddNew()
dr("付款申请单编号") = e.DataRow("付款申请编号")
dr("申请日期") = e.DataRow("申请日期")
dr("申请部门") = e.DataRow("申请部门")
dt("付款申请单编号") = e.DataRow("付款申请编号")
dt("申请日期") = e.DataRow("申请日期")
dt("申请部门") = e.DataRow("申请部门")
Else
dr("付款申请单编号") = e.DataRow("付款申请编号")
dt("付款申请单编号") = e.DataRow("付款申请编号")
End If
Case "申请日期","申请部门"
Dim dr As DataRow = DataTables("申请单明细").Find("付款申请单编号 = '" & e.DataRow("付款申请编号") & "'")
Dim dt As DataRow = DataTables("税费").Find("付款申请单编号 = '" & e.DataRow("付款申请编号") & "'")
If dr IsNot Nothing And dt IsNot Nothing Then
dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
dt(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
End If
End Select
请帮忙看看。
[此贴子已经被作者于2020/2/20 16:44:53编辑过]