下面是借助序时账代码改造的,提示错误在MessageBox.Show(0)和MessageBox.Show(1)之间,哪位高手能指点一下错误的原因吗??拜谢啦!!
提示错误如下:
.NET Framework 版本:2.0.50727.8806
Foxtable 版本:2017.6.12.1
错误所在事件:表,科目汇总表, DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。
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
MessageBox.Show(0)
If dr("方向") = "借" Then
If dr("方向2") = "借" Then
If dr("期初金额1") + dr("借方合计") - dr("贷方合计") > 0 Then
mr("期末金额") = mr("期初金额1") + mr("借方合计") - mr("贷方合计")
dr("方向1") = "借"
Else
mr("期末金额") = mr("期初金额1") - mr("借方合计") + mr("贷方合计")
dr("方向1") = "贷"
End If
Else
If dr("期初金额1") + dr("贷方合计") - dr("借方合计") > 0 Then
mr("期末金额") = mr("期初金额1") - mr("借方合计") + mr("贷方合计")
dr("方向1") = "贷"
Else
mr("期末金额") = mr("期初金额1") - mr("贷方合计") + mr("借方合计")
dr("方向1") = "借"
End If
End If
MessageBox.Show(1)
ElseIf dr("方向") = "贷" Then
If dr("方向2") = "贷" Then
If dr("期初金额1") - dr("借方合计") + dr("贷方合计") > 0 Then
mr("期末金额") = mr("期初金额1") - mr("借方合计") + mr("贷方合计")
dr("方向1") = "贷"
Else
mr("期末金额") = mr("期初金额1") + mr("借方合计") - mr("贷方合计")
dr("方向1") = "借"
End If
Else
If dr("期初金额1") - dr("贷方合计") + dr("借方合计") > 0 Then
mr("期末金额") = mr("期初金额1") + mr("借方合计") - mr("贷方合计")
dr("方向1") = "借"
Else
mr("期末金额") = mr("期初金额1") + mr("贷方合计") - mr("借方合计")
dr("方向1") = "贷"
End If
dr = mr
End If
Else
If dr("方向2") = "借" Then
If dr("期初金额1") + dr("借方合计") - dr("贷方合计") > 0 Then
mr("期末金额") = mr("期初金额1") + mr("借方合计") - mr("贷方合计")
dr("方向1") = "借"
Else
mr("期末金额") = mr("期初金额1") - mr("借方合计") + mr("贷方合计")
dr("方向1") = "贷"
End If
Else
If dr("期初金额1") + dr("贷方合计") - dr("借方合计") > 0 Then
mr("期末金额") = mr("期初金额1") - mr("借方合计") + mr("贷方合计")
dr("方向1") = "贷"
Else
mr("期末金额") = mr("期初金额1") - mr("贷方合计") + mr("借方合计")
dr("方向1") = "借"
End If
dr = mr
End If
End If
End If
drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And 科目编码 = '" & dr("科目编码") & "'", "[_SortKey]")
For i As Integer = 1 To drs.Count - 1
drs(i)("期初金额1") = drs(i-1)("期末金额")
drs(i)("方向2") = drs(i-1)("方向1")
Next
MessageBox.Show(2)
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]")
MessageBox.Show(3)
If dr IsNot Nothing Then
If dr("方向") = "借" Then
If dr("方向2") = "借" Then
If dr("期初金额1") + dr("借方合计") - dr("贷方合计") > 0 Then
mr("期末金额") = mr("期初金额1") + mr("借方合计") - mr("贷方合计")
dr("方向1") = "借"
Else
mr("期末金额") = mr("期初金额1") - mr("借方合计") + mr("贷方合计")
dr("方向1") = "贷"
End If
Else
If dr("期初金额1") + dr("贷方合计") - dr("借方合计") > 0 Then
mr("期末金额") = mr("期初金额1") - mr("借方合计") + mr("贷方合计")
dr("方向1") = "贷"
Else
mr("期末金额") = mr("期初金额1") - mr("贷方合计") + mr("借方合计")
dr("方向1") = "借"
End If
dr = mr
End If
ElseIf dr("方向") = "贷" Then
If dr("方向2") = "贷" Then
If dr("期初金额1") - dr("借方合计") + dr("贷方合计") > 0 Then
mr("期末金额") = mr("期初金额1") - mr("借方合计") + mr("贷方合计")
dr("方向1") = "贷"
Else
mr("期末金额") = mr("期初金额1") + mr("借方合计") - mr("贷方合计")
dr("方向1") = "借"
End If
Else
If dr("期初金额1") - dr("贷方合计") + dr("借方合计") > 0 Then
mr("期末金额") = mr("期初金额1") + mr("借方合计") - mr("贷方合计")
dr("方向1") = "借"
Else
mr("期末金额") = mr("期初金额1") + mr("贷方合计") - mr("借方合计")
dr("方向1") = "贷"
End If
dr = mr
End If
Else
If dr("方向2") = "借" Then
If dr("期初金额1") + dr("借方合计") - dr("贷方合计") > 0 Then
mr("期末金额") = mr("期初金额1") + mr("借方合计") - mr("贷方合计")
dr("方向1") = "借"
Else
mr("期末金额") = mr("期初金额1") - mr("借方合计") + mr("贷方合计")
dr("方向1") = "贷"
End If
Else
If dr("期初金额1") + dr("贷方合计") - dr("借方合计") > 0 Then
mr("期末金额") = mr("期初金额1") - mr("借方合计") + mr("贷方合计")
dr("方向1") = "贷"
Else
mr("期末金额") = mr("期初金额1") - mr("贷方合计") + mr("借方合计")
dr("方向1") = "借"
End If
dr = mr
End If
End If
End If
End If
MessageBox.Show(4)
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)("期初金额1") = drs(i-1)("期末金额")
Next
End If
End If
End Select