If e.DataCol.Name = "数量_本次交"
DataTables("客户订单主表").LoadFilter = "客户订单编号 = '" & e.DataRow("客户订单编号") & "'"
DataTables("客户订单主表").Load()
If DataTables("客户订单主表").DataRows.Count = 0 Then '如果订单表没有数据
DataTables("客户订单子表").LoadFilter = "客户订单编号 Is Null" '不加载订单明细
Else
Dim ids As String
For Each dr1 As DataRow In DataTables("客户订单主表").DataRows
ids = ids & ",'" & dr1("客户订单编号") & "'"
Next
ids= ids.Trim(",")
DataTables("客户订单子表").LoadFilter = "客户订单编号 In (" & ids & ")"
End If
DataTables("客户订单子表").LoadTop = ""
DataTables("客户订单子表").Load()
Dim dr As DataRow = DataTables("客户订单子表").Find("客户订单编号 = '" & e.DataRow("客户订单编号") & "'And OPN ='" & e.DataRow("料号") & "'")
DataTables("产品资料子表").LoadFilter = "料号 = '" & e.DataRow("料号") & "'"
DataTables("产品资料子表").load()
Dim cr As DataRow = DataTables("产品资料子表").Find("料号 = '" & e.DataRow("料号") & "'")
DataTables("销售出库单子表").LoadFilter ="客户订单编号 = '" & e.DataRow("客户订单编号") & "'"
'DataTables("销售出库单子表").load()
Dim v As Integer = DataTables("销售出库单子表").Compute("sum(数量_本次交)","客户订单编号 = '" & e.DataRow("客户订单编号") & "'And 料号 ='" & e.DataRow("料号") & "'")
For Each pr As DataRow In DataTables("销售出库单子表").Select("客户订单编号 = '" & e.DataRow("客户订单编号") & "' And 料号 ='" & e.DataRow("料号") & "'")
pr("数量_累交数") = v
pr("数量_未交数") = e.DataRow("数量_订单数")-v
Next
dr("累交数") = e.DataRow("数量_累交数")
dr("未交数") = dr("数量")-dr("累交数")
cr("当前库存") = cr("当前库存")- e.NewValue+e.OldValue
DataTables("客户订单主表").LoadFilter ="客户订单编号 = '" & e.DataRow("客户订单编号") & "'"
DataTables("客户订单主表").load()
Dim vr As DataRow = DataTables("客户订单主表").Find("客户订单编号 = '" & e.DataRow("客户订单编号") & "'")
Dim temp As Integer = DataTables("客户订单子表").Compute("sum(未交数)","客户订单编号 = '" & e.DataRow("客户订单编号") & "'")
If temp > 0 Then
vr("结案") = False
Else
vr("结案") = True
End If
End If
==========================================
这段代码写在Datacolchanged事件里
我需要通过“数量_本次交”的事件来更新{客户订单子表},{客户订单主表},{产品资料子表},{销售出库单子表}的相关数据
问题处在标红的这句代码上
如果没有这句,后台的数据无法加载到前台来进行COMPUTE的统计,会导致数据出错,如果有这句,compute的代码又无法执行出错,因为当前数据被刷新,想到用SQL的UPDATE来写,后面的代码又涉及到更复杂的逻辑,不知道怎么办了
[此贴子已经被作者于2013-3-4 11:16:38编辑过]