仓库账的DataColChanged事件:
Dim dts As List(Of DataRow) = DataTables("采购订单").SQLSelect("[单号] Is Not Null And [单号] ='" & e.DataRow("单号") & "'")
For Each dt As DataRow In dts
If dt IsNot Nothing Then
If e.DataTable.Compute("Sum([进仓数量])","[单号] ='" & e.DataRow("单号") & "' And [名称] ='" & e.DataRow("名称") & "' And [规格]" & IIF(e.DataRow.IsNull("规格")," Is Null"," ='" & e.DataRow("规格") & "'")) = _
DataTables("采购订单").Compute("Sum([数量])","[单号] ='" & e.DataRow("单号") & "'And [名称] ='" & e.DataRow("名称") & "' And [规格]" & IIF(e.DataRow.IsNull("规格")," Is Null"," ='" & e.DataRow("规格") & "'")) Then
dt("勾选") = True
dt.Locked = True
Else
dt.Locked = False
dt("勾选") = False
End If
End If
Next
DataTables("采购订单").SQLUpdate(dts)
DataTables("采购订单").Load()
采购订单账的DataColChanged事件:
Dim dts As List(of DataRow) = e.DataTable.SQLSelect("[单号] = '" & e.DataRow("单号") & "' And [名称] ='" & e.DataRow("名称") & "' And [规格]" & IIF(e.DataRow.IsNull("规格")," Is Null"," ='" & e.DataRow("规格") & "'"))
For Each dt As DataRow In dts
Select Case e.DataCol.Name
Case "勾选"
If dt IsNot Nothing Then
If e.DataRow.Isnull("单号") = False And e.DataTable.SQLCompute("Sum(数量)","[单号] = '" & dt("单号") & "' And [名称] ='" & dt("名称") & "' And [规格]" & IIF(dt.IsNull("规格")," Is Null"," ='" & dt("规格") & "'")) = _
DataTables("仓库账").SQLCompute("Sum(进仓数量)","[单号] = '" & dt("单号") & "' And [名称] ='" & dt("名称") & "' And [规格]" & IIF(dt.IsNull("规格")," Is Null"," ='" & dt("规格") & "'")) Then
dt("勾选") = True
dt.Locked = True
Else
dt.Locked = False
dt("勾选") = False
End If
End If
End Select
Next
e.DataTable.SQLUpdate(dts)
e.DataTable.Load()
始终能锁不能解
[此贴子已经被作者于2022/4/13 10:41:49编辑过]