Select Case e.DataCol.Name
Case "出入库数量"
MessageBox.Show(1)
'自动计算余数
Dim dr As DataRow
MessageBox.Show(2)
Dim mr As DataRow = e.DataRow
MessageBox.Show(3)
Dim drs As List(of DataRow)
MessageBox.Show(4)
dr = e.DataTable.Find("[_SortKey] <= #" & mr("_SortKey") & "# And [物料编号] = '" & mr("物料编号") & "'", "_SortKey desc")
If dr Is Nothing OrElse dr("_Identify") = mr("_Identify") 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
MessageBox.Show(5)
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
上述涉及余数计算的代码,如果全部注释掉,就不会出现任何警告。如果把前面4个 Messagebox.show 都注释掉,留下Messagebox.show(5),就只出现如下代码
.NET Framework 版本:4.0.30319.34209
Foxtable 版本:2020.5.29.8
错误所在事件:表,出入库, DataColChanged
详细错误信息:
调用的目标发生了异常。
该字符串未被识别为有效的 DateTime。