我的“入库明细”表代码:
Select Case e.DataCol.Name
Case "物料编号","入库数量"
Dim dr As DataRow
Dim mr As DataRow = e.DataRow
Dim drs As List(of DataRow)
dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [物料编号] = '" & mr("物料编号") & "'", "[_SortKey] Desc")
If dr Is Nothing Then '如果没有上一行,说明本行就是同产品的第一行
mr("库存数量") = mr("入库数量")
dr = mr
End If
drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [物料编号] = '" & dr("物料编号") & "'")
For i As Integer = 1 To drs.Count - 1 '重算余下行的余额
drs(i)("库存数量") = drs(i-1)("库存数量") + drs(i)("入库数量")
Next
End Select
DataTables("物料中心").DataCols("物料编号").RaiseDataColChanged("物料编号 = '" &e.DataRow("物料编号") & "'")
If e.DataCol.Name = "物料编号" Then
Dim nms() As String = {"物料名称","规格型号","单位"}
If e.NewValue Is Nothing Then
For Each nm As String In nms
e.DataRow(nm) = Nothing
Next
Else
Dim dr As DataRow
dr = DataTables("物料中心").Find("[物料编号] = '" & e.NewValue & "'")
If dr IsNot Nothing
For Each nm As String In nms
e.DataRow(nm) = dr(nm)
Next
End If
End If
End If
Select Case e.DataCol.name
Case "物料名称","规格型号","物料编号", "入库数量","入库单号","交易日期","供货厂家","备注"
Dim dr As DataRow = DataTables("物料明细").Find("编号 = '入库" & e.DataRow("_Identify") & "'")
If dr Is Nothing Then
dr = DataTables("物料明细").addnew
e.DataRow.save
dr("编号") = "入库" & e.DataRow("_Identify")
End If
dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
End Select
“散件明细”表代码:
If e.DataCol.Name = "物料编号" Then
Dim nms() As String = {"物料名称","规格型号","单位"}
If e.NewValue Is Nothing Then
For Each nm As String In nms
e.DataRow(nm) = Nothing
Next
Else
Dim dr As DataRow
dr = DataTables("物料中心").Find("[物料编号] = '" & e.NewValue & "'")
If dr IsNot Nothing
For Each nm As String In nms
e.DataRow(nm) = dr(nm)
Next
End If
End If
End If
DataTables("物料中心").DataCols("物料编号").RaiseDataColChanged("物料编号 = '" &e.DataRow("物料编号") & "'")
Select Case e.DataCol.name
Case "物料名称","规格型号","物料编号", "出库数量","出库单号","交易日期","客户","备注"
Dim dr As DataRow = DataTables("物料明细").Find("编号 = '出库" & e.DataRow("_Identify") & "'")
If dr Is Nothing Then
dr = DataTables("物料明细").addnew
e.DataRow.save
dr("编号") = "出库" & e.DataRow("_Identify")
End If
dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
End Select
是否代码有冲突啊