大概结构,入库明细表通过datacolchangde事件传递值给库存表,来生成库存入库明细表事件代码
Select Case e.DataCol.Name
Case "物料编号","供应商","物料名称","型号规格","购进数量"
Dim filter As String = "物料编号 = '" & e.DataRow("物料编号") & "' and 供应商 = '" & e.DataRow("供应商") & "' and 物料名称 = '" & e.DataRow("物料名称") & "' and 型号规格 = '" & e.DataRow("型号规格") & "'"
If not (e.DataRow.IsNull("供应商") OrElse e.DataRow.IsNull("物料名称") OrElse e.DataRow.IsNull("型号规格") OrElse e.DataRow.IsNull("物料编号")) Then
Dim fdr As DataRow = DataTables("库存表").Find(filter)
If (fdr Is Nothing) Then
fdr = DataTables("库存表").AddNew
fdr("物料编号") = e.DataRow("物料编号")
fdr("物料名称") = e.DataRow("物料名称")
fdr("型号规格") = e.DataRow("型号规格")
fdr("供应商") = e.DataRow("供应商")
End If
End If
If e.DataCol.Name = "购进数量" Then
DataTables("库存表").DataCols("供应商").RaiseDataColChanged(filter)
Else
DataTables("库存表").DataCols("供应商").RaiseDataColChanged()
End If
End Select
库存表事件代码
Select Case e.DataCol.Name
Case "物料编号","物料名称","型号规格","供应商" ''这个例子包含3个字段
Dim filter As String = "物料编号 = '" & e.DataRow("物料编号") & "'and 供应商 = '" & e.DataRow("供应商") & "' and 物料名称 = '" & e.DataRow("物料名称") & "' and 型号规格 = '" & e.DataRow("型号规格") & "'"
e.DataRow("库存数量") = DataTables("入库明细表").Compute("sum(购进数量)", filter)
End Select
本来这个结构没问题,但是现在需要给入库明细表加入一个判断列,只有为TRUE的时候再会计入库存表里面,为FALSE则不计入。这个判读是可以手动更改的
综上所诉,要求就是在入库明细表有值后,不要第一时间生成库存,而是需要在查询页面手动选定记录让判断列为TRUE后才生成库存
其实事件都有,只是如何在查询页面手动更改判读为TRUE后正确调用入库明细表的datacolchangde事件,及如何在datacolchangde事件中加入IF判断来检查判断列是否为TRUE
备注:判断字段 BINGO
int NULL,