这样试试:
if e.DataCol.Name = "工序天数" OrElse e.DataCol.Name = "工序号" Then Dim dr As DataRow = e.DataRow if dr.IsNull("图号") OrElse dr.IsNull("名称") OrElse dr.IsNull("订单号") OrElse dr.IsNull("工序号") OrElse dr.IsNull("工序天数") Then dr("工序完工日期") = Nothing dr("工序开工日期") = Nothing Else Dim Sum As Double = Tables("表B").Compute("Sum(工序天数)","[图号] = '" & dr("图号") & "' And [名称] = '" & dr("名称") & "' And [订单号] = '" & dr("订单号") & "' And [工序号] <= " & dr("工序号")) Dim Sum1 As Double = Tables("表B").Compute("Sum(工序天数)","[图号] = '" & dr("图号") & "' And [名称] = '" & dr("名称") & "' And [订单号] = '" & dr("订单号") & "' And [工序号] >= " & dr("工序号")) Dim pr As DataRow = dr.GetParentrow("表A") if pr IsNot Nothing Then dr("工序完工日期") = pr("到料日期").AddDays(Sum * (pr("计划周期")/pr("合计天数"))) dr("工序开工日期") = pr("计划完工").AddDays(-Sum1 * (pr("计划周期")/pr("合计天数"))+1) Else dr("工序完工日期") = Nothing dr("工序开工日期") = Nothing End If End If End If
|