代码有矛盾,只要满足条件,就会触发。建议改一下代码,触发另一列。
If e.DataCol.Name = "任务单编号" OrElse e.DataCol.Name = "理论计算金额" Then '发生变化的是产品列.
'则累计订单表中同名产品总的销售量,然后赋值给变动行的数量列
e.DataRow("理论计算金额") = DataTables("生产调度_Table2").Compute("Sum(材料价格)","[工艺单编号] like '" & e.NewValue & "-*'")+DataTables("生产调度_Table2").Compute("Sum(加工金额)","[工艺单编号] like '" & e.NewValue & "-*'")
End If
Select Case e.DataCol.Name
Case "任务单编号"
If e.DataRow.IsNull("任务单编号") = False Then '如果已经输入订单编号
If e.DataRow.GetChildRows("工艺单").Count = 0 Then '而且无订单明细
Dim dr As DataRow = DataTables("工艺单").AddNew()
dr("任务单编号") = e.DataRow("任务单编号")
End If
End If
End Select