调换一下赋值的前后顺序
If e.DataCol.Name = "生产流程单_判定" AndAlso e.DataRow("生产流程单_判定") = True Then
Dim nma() As String = {"生产流程单_半成品入库","生产流程单_成品入库","生产通知单_产品名称","生产通知单_订单编号","生产流程单_合格数", "生产通知单_图号" } 'A表数据来源列
Dim nmb() As String = {"出入库登记表_半成品","出入库登记表_成品","出入库登记表_产品名称","出入库登记表_产品订单号","出入库登记表_入库数量","出入库登记表_产品编号" } 'B表数据接收列
Dim dr As DataRow = DataTables("库房管理系统").AddNew
For i As Integer = 0 To nma.Length - 1
dr(nmb(i)) = e.DataRow(nma(i))
Next
End If
原因是因为如果先给数量赋值,赋值后就会马上触发【库房管理系统datacolchangde 】,而这时成品半成品逻辑列还没有值,导致【库房管理系统datacolchangde 】判断成品半成品逻辑列没有值就不会计算库存。