我有加一个{临时销售出库单子表},后台表是销售出库单子表,核心思想就是把load错开,用一张临时表来加载需要更改的后台数据,而不是直接用销售出库单子表来加载,这样跟用COMMAND取后台表出来的效果是一样的,只是代码繁琐了很多,等狐狸爸爸更新了COMMAND出来的Datatables可以保存修改的时候,就简单多了..一直不更新,郁闷啊
这个是deleting事件里的
Dim cmd3 As New SQLCommand
cmd3.C
cmd3.CommandText="select 当前库存 from {产品资料子表} Where 料号 = '" & e.DataRow("料号") & "'"
Dim kc As Integer = cmd3.ExecuteScalar
DataTables("临时销售出库单子表").LoadFilter = "客户订单编号 = '" & e.DataRow("客户订单编号") & "' And 料号 = '" & e.DataRow("料号") & "'"
DataTables("临时销售出库单子表").load
Dim count As Integer = DataTables("临时销售出库单子表").DataRows.Count
Dim dr As DataRow = DataTables("临时销售出库单子表").Find("[_Identify] = '" & e.DataRow("_Identify") & "'")
Dim count1 As Integer = DataTables("销售出库单子表").Select("[_Identify] = '" & e.DataRow("_Identify") & "'And 客户订单编号 = '" & e.DataRow("客户订单编号") & "' And 料号 = '" & e.DataRow("料号") & "'").Count
If dr Is Nothing AndAlso count = 0
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "Update {客户订单子表} SET 未交数 = 未交数 + '" & e.DataRow("数量_本次交") & "'where 客户订单编号 = '" & e.DataRow("客户订单编号") & "' And OPN = '" & e.DataRow("料号") & "'"
cmd.ExecuteNonQuery()
ElseIf dr Is Nothing AndAlso count <> 0
For Each mr As DataRow In DataTables("临时销售出库单子表").DataRows
mr("数量_累交数") = mr("数量_累交数") - e.DataRow("数量_本次交")
mr("数量_未交数") = mr("数量_订单数") - mr("数量_累交数")
For Each cr As DataRow In DataTables("销售出库单子表").Select("[_Identify] <> '" & e.DataRow("_Identify") & "' And 客户订单编号 = '" & e.DataRow("客户订单编号") & "' And 料号 ='" & e.DataRow("料号") & "'")
cr("数量_累交数") = mr("数量_累交数")
cr("数量_未交数") = mr("数量_未交数")
Next
Next
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "Update {客户订单子表} SET 未交数 = 未交数 + '" & e.DataRow("数量_本次交") & "'where 客户订单编号 = '" & e.DataRow("客户订单编号") & "' And OPN = '" & e.DataRow("料号") & "'"
cmd.ExecuteNonQuery()
ElseIf dr IsNot Nothing AndAlso count =1
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "Update {客户订单子表} SET 未交数 = 未交数 + '" & e.DataRow("数量_本次交") & "'where 客户订单编号 = '" & e.DataRow("客户订单编号") & "' And OPN = '" & e.DataRow("料号") & "'"
cmd.ExecuteNonQuery()
Dim cmd2 As New SQLCommand
cmd2.C
cmd2.CommandText = "Update {产品资料子表} SET 当前库存 ='" & kc + e.DataRow("数量_本次交") & "' where 料号 = '" & e.DataRow("料号") & "'"
cmd2.ExecuteNonQuery()
dr.Delete
ElseIf dr IsNot Nothing AndAlso count >1
For Each mmr As DataRow In DataTables("临时销售出库单子表").DataRows
'mmr("数量_累交数") = DataTables("临时销售出库单子表").Compute("sum(数量_本次交)","[_Identify] <> '" & e.DataRow("_Identify") & "' And 客户订单编号 = '" & e.DataRow("客户订单编号") & "' And OPN = '" & e.DataRow("OPN") & "'") - e.DataRow("数量_本次交")
mmr("数量_累交数")= mmr("数量_累交数") - e.DataRow("数量_本次交")
mmr("数量_未交数") = mmr("数量_订单数") - mmr("数量_累交数")
For Each ccr As DataRow In DataTables("销售出库单子表").Select("[_Identify] <> '" & e.DataRow("_Identify") & "' And 客户订单编号 = '" & e.DataRow("客户订单编号") & "' And 料号 ='" & e.DataRow("料号") & "'")
ccr("数量_累交数") = mmr("数量_累交数")
ccr("数量_未交数") = mmr("数量_未交数")
Next
Next
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "Update {客户订单子表} SET 未交数 = 未交数 + '" & e.DataRow("数量_本次交") & "'where 客户订单编号 = '" & e.DataRow("客户订单编号") & "' And OPN = '" & e.DataRow("料号") & "'"
cmd.ExecuteNonQuery()
Dim cmd2 As New SQLCommand
cmd2.C
cmd2.CommandText = "Update {产品资料子表} SET 当前库存 ='" & kc + e.DataRow("数量_本次交") & "' where 料号 = '" & e.DataRow("料号") & "'"
cmd2.ExecuteNonQuery()
dr.Delete
End If
Dim cmd1 As New SQLCommand
cmd1.C
Dim cmd5 As New SQLCommand
cmd5.C
cmd5.CommandText = "select sum(未交数) from {客户订单子表} where 客户订单编号 = '" & e.DataRow("客户订单编号") & "'"
Dim temp1 As Integer = cmd5.ExecuteScalar
If temp1 >0
cmd1.CommandText ="Update {客户订单主表} SET 结案 = 0 Where 客户订单编号 = '" & e.DataRow("客户订单编号") & "'"
cmd1.ExecuteNonQuery()
ElseIf temp1 <= 0
cmd1.CommandText ="Update {客户订单主表} SET 结案 = 1 Where 客户订单编号 = '" & e.DataRow("客户订单编号") & "'"
cmd1.ExecuteNonQuery()
End If
[此贴子已经被作者于2013-3-30 22:02:40编辑过]