在我的项目中有一个表不行,请帮我看看:
Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("生产工艺")
Dim str As String = "图号 = '" & dr("图号") & "' And 工序_序号 = '" & dr("工序_序号") & "' And 派工单号 = '" & dr("派工单号") & "'And 状态 = '执行'"
if e.DataCol.Name = "图号" OrElse e.DataCol.Name = "工序_序号" OrElse e.DataCol.Name = "派工单号" Then
Dim r As DataRow = dt.Find(str)
if r IsNot Nothing Then
dr("成本_加工") = (dt.Compute("Sum(成本_加工费元)",str))
dr("成本_工资") = (dt.Compute("Sum(成本_工资元)",str))
dr("工艺工时_准结") = (dt.Compute("Sum(工艺工时_准结)",str))
dr("工艺工时_加工")=(dt.Compute("Sum(工艺工时_加工)",str))
dr("完成工时_准结")=(dt.Compute("Sum(完成工时_准结)",str))
dr("完成工时_加工")=(dt.Compute("Sum(完成工时_加工)",str))
dr("工废损失")=(dt.Compute("Sum(工废损失)",str))
dr("实用工时")=(dt.Compute("Sum(实用工时)",str))
End If
End If
If e.DataCol.Name = "工序_班组" Then
Dim dr1 As DataRow = DataTables("基础表").Find(" [班组] = '" & e.DataRow("工序_班组") & "'")
If dr1 IsNot Nothing Then
dr("工作时间") = dr1("工作时间")
Else
dr("工作时间") = Nothing
End If
End If
Select Case e.DataCol.Name
Case "工艺工时_准结","工艺工时_加工","完成工时_准结","完成工时_加工","工作时间"
dr("完成工时_比例")=(dr("完成工时_准结")+dr("完成工时_加工"))/(dr("工艺工时_准结")+dr("工艺工时_加工"))
dr("工艺工时_天数")=(dr("工艺工时_加工")+dr("工艺工时_准结"))/dr("工作时间")
dr("完成工时_天数")=(dr("完成工时_准结")+dr("完成工时_加工"))/dr("工作时间")
End Select
If e.DataCol.Name = "确定" Then '如果是已结帐列的内容变动
If e.NewValue = True Then '而且变动后的值是True(已勾选)
e.DataRow.Locked = True '那么锁定此行
End If
End If
if e.DataCol.Name = "工艺工时_天数" OrElse e.DataCol.Name = "工序_序号" Then
if dr.IsNull("图号") OrElse dr.IsNull("派工单号") OrElse dr.IsNull("工序_序号") OrElse dr.IsNull("工艺工时_天数") Then
dr("计划日期_结束") = Nothing
dr("计划日期_开始") = Nothing
Else
Dim Sum As Double = Tables("生产工序").Compute("Sum(工艺工时_天数)","[图号] = '" & dr("图号") & "' And [派工单号] = '" & dr("派工单号") & "' And [工序_序号] <= " & dr("工序_序号"))
Dim Sum1 As Double = Tables("生产工序").Compute("Sum(工艺工时_天数)","[图号] = '" & dr("图号") & "' And [派工单号] = '" & dr("派工单号") & "' And [工序_序号] >= " & dr("工序_序号"))
Dim pr As DataRow = dr.GetParentrow("生产目录")
if pr IsNot Nothing Then
dr("计划日期_结束") = pr("到料日期").AddDays(Sum * (pr("生产周期")/pr("工艺工时_天数")))
dr("计划日期_开始") = pr("完工日期").AddDays(-Sum1 * (pr("生产周期")/pr("工艺工时_天数"))+0.5)
Else
dr("计划日期_结束") = Nothing
dr("计划日期_开始") = Nothing
End If
End If
End If
if e.datacol.name = "图号" OrElse e.datacol.name = "派工单号" OrElse e.datacol.name = "工序_序号"
e.datarow("实际日期_开始") = DataTables("日报表").Compute("min(日期)","[图号] = '" & e.datarow("图号") & "'and [派工单号] = '" & e.datarow("派工单号") & "'and [工序_序号] = '" & e.datarow("工序_序号") & "'")
e.datarow("实际日期_结束") = DataTables("日报表").Compute("max(日期)","[图号] = '" & e.datarow("图号") & "'and [派工单号] = '" & e.datarow("派工单号") & "'and [工序_序号] = '" & e.datarow("工序_序号") & "'")
end if
![dvubb 图片点击可在新窗口打开查看](skins/default/filetype/bmp.gif)
此主题相关图片如下:未命名.bmp
[此贴子已经被作者于2009-12-24 17:18:39编辑过]