原来是生产调度令号和序号不为空就增加新的行,现在需要工种也不为空时增加新的行,并且在工种发生变动时,会在跟踪卡明细表中对应的 生产调度令号和序号
行进行相应的变动而不是增加新的行,如果工种列被删除,则跟踪卡明细对应的生产调度令号和序号行被删除
我自己改的代码如下:
If e.DataCol.Name = "生产调度令号" OrElse e.DataCol.Name = "序号" OrElse e.DataCol.Name = "工种" Then
If e.DataRow.IsNull("生产调度令号") = False AndAlso e.DataRow.IsNull("序号") = False AndAlso e.DataRow.IsNull("工种") = False Then
Dim ndr As DataRow = DataTables("机加跟踪卡明细").AddNew
ndr("生产调度令号") = e.DataRow("生产调度令号")
ndr("序号") = e.DataRow("序号")
ndr("工种") = e.DataRow("工种")
Else If e.NewValue = Nothing Then
If e.DataCol.Name = "生产调度令号" Then
DataTables("机加跟踪卡明细").DeleteFor("生产调度令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "' and 工种 = '" & e.DataRow("工种") & "'")
DataTables("机加车间排工").DeleteFor("生产调度令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.DataRow("工种") & "'")
DataTables("机加工时统计").DeleteFor("生产调度令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.DataRow("工种") & "'")
DataTables("机加工时结算").DeleteFor("核算令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.DataRow("工种") & "'")
DataTables("机加检验记录").DeleteFor("生产调度令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.DataRow("工种") & "'")
Else If e.DataCol.Name = "序号" Then
DataTables("机加跟踪卡明细").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'and 工种 = '" & e.DataRow("工种") & "'")
DataTables("机加车间排工").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'and 工种 = '" & e.DataRow("工种") & "'")
DataTables("机加工时统计").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'and 工种 = '" & e.DataRow("工种") & "'")
DataTables("机加工时结算").DeleteFor("核算令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'and 工种 = '" & e.DataRow("工种") & "'")
DataTables("机加检验记录").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'and 工种 = '" & e.DataRow("工种") & "'")
Else If e.DataCol.Name = "工种" Then
DataTables("机加跟踪卡明细").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.OldValue & "'")
DataTables("机加车间排工").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" &e.OldValue & "'")
DataTables("机加工时统计").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.OldValue & "'")
DataTables("机加工时结算").DeleteFor("核算令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.OldValue & "'")
DataTables("机加检验记录").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" &e.DataRow("序号") & "'and 工种 = '" & e.OldValue & "'")
End If
End If
End If
不过这样好像在修改工种时,会在跟踪卡明细表中增加新的行