我的项目有两个数据表,一个叫“出入库”,一个叫“批号表”。
“出入库”里的数据列名称有:物料编号、批号、入库数量(正数)、出库数量(负数)
“批号表”里的数据列名称有:物料编号、批号、库存数量
我的要求是:每当 (1) “出入库”里面的入库数量、出库数量发生改变,或者(2)有新增、删除数据行时,如果“批号表”里面有与“出入库”相同“物料编号”和“批号”的记录,则将“批号表”里面的数量与情况(1)的改变量相加,或者与情况(2)里面的入库数量、出库数量相加,否则就新增加一条记录。“出入库”里面没有批号的数据行入库数量、出库数量发生改变或者新增、删除数据行是没有批号的,则不在“批号表”里反映出来。也就是说,“批号表”里面的所有数据行都是有批号的,而且只能有一条相同“物料编号”和相同“批号”的记录。
我现在的代码是这样的:
“出入库”之Datacolchanged:
If e.DataCol Is DataTables("出入库").DataCols("入库数量") Or e.DataCol Is DataTables("出入库").DataCols("出库数量")
If e.DataRow("批号") Is Nothing
Else
Dim re As Boolean = False
For Each dr As DataRow In DataTables("批号表").DataRows
If dr("批号") <> e.DataRow("批号") Or dr("物料编号") <> e.DataRow("物料编号") Then
Continue
For
ElseIf
dr("批号") = e.DataRow("批号") And dr("物料编号") = e.DataRow("物料编号") Then
dr("库存数量") = e.DataRow("入库数量") + e.DataRow("出库数量") + dr("库存数量") - e.OldValue
re
= True
Exit
For
End
If
Next
If re =False
Dim
dr As DataRow
dr
= DataTables("批号表").AddNew()
dr("批号")
= e.DataRow("批号")
dr("物料编号")
= e.DataRow("物料编号")
dr("库存数量")
= e.DataRow("入库数量")
+ e.DataRow("出库数量")
End If
End If
End If
但是现在的代码不能完全实现我的要求。不知这个代码有什么问题?