以下是引用狐狸爸爸在2011-5-31 10:09:00的发言:
DataColChanged事件:
Select Case e.DataCol.Name
Case "员工","产品编号","产品批次","日期"
If e.DataRow.IsNull("日期") = False Then
Dim dt As Date = e.DataRow("日期")
Dim dr1 As DataRow = e.DataRow
Dim dr2 As DataRow
dt = dt.AddDays(-1) '求出上一天的日期
dr2 = e.DataTable.Find("日期 = #" & dt & "# And 产品编号 = '" & dr1("产品编号") & "' And 产品批次 = '" & dr1("产品批次") & "' And 员工 = '" & dr1("员工") & "'")
If dr2 IsNot Nothing Then
dr1("领取数量") = dr2("领取数量") - dr2("完成数量") - dr2("废品数量")
End If
End If
End Select
老爹,这个不管用,我做了个窗口,专门生成新的订单
此主题相关图片如下:110531.jpg

生成订单按钮的代码如下,但是只能生成一行新的,怎么样才能把指定日期的所有订单全部检测后生成新的订单呢?
Dim r1 As Date = e.Form.Controls("r1").Value
Dim r2 As Date = e.Form.Controls("r2").Value
Dim dr1 As DataRow = DataTables("生产进度").Find("日期 = #" & r1 & "#")
Dim dr2 As DataRow
If dr1 IsNot Nothing Then
If dr1("领取数量") > dr1("完成数量") + dr1("废品数量") Then
dr2 = DataTables("生产进度").AddNew()
dr2("日期") = r2
dr2("员工") = dr1("员工")
dr2("部门") = dr1("部门")
dr2("产品批次") = dr1("产品批次")
dr2("产品编号") = dr1("产品编号")
dr2("加工工序") = dr1("加工工序")
dr2("领取数量") = dr1("领取数量") - dr1("完成数量") - dr1("废品数量")
End If
Else
MessageBox.Show("未发现该日订单,请核查!","温馨提示")
End If
DataTables("生产进度").Save()
e.Form.Close()