现在发现,这样的代码在输入数据的时候,日期一定要按顺序输入,否则计算还是有问题,不知如何解决才好呢?
我这样写还是不行啊!
Dim dr1 As DataRow
Dim dr2 As DataRow
Dim mr As DataRow = e.DataRow
Dim drs As List(of DataRow)
If mr.IsNull("料品编码") = False Then
dr1 = e.DataTable.Find("[会计期间] = '" & mr("会计期间") & "'and [日期] <= #" & mr("日期") & "# And [料品编码] = '" & mr("料品编码") & "'and [_sortkey] < " & mr("_sortkey") ,"[_SortKey] Desc")
If dr1 Is Nothing Then '如果没有上一行,说明本行就是同产品的第一行
If mr("摘要")="期初结存" Then
Return
Else
mr("结存量") = mr("生产供给量") - mr("订单需求量")
End If
dr1 = mr
End If
drs = e.DataTable.Select("[会计期间] = '" & dr1("会计期间") & "'and [料品编码] = '" & dr1("料品编码") & "'And [日期] >= #" & dr1("日期") & "#" ,"[_SortKey]")
For i As Integer = 1 To drs.Count - 1 '重算余下行的余额
drs(i)("结存量") = drs(i-1)("结存量") + drs(i)("生产供给量") - drs(i)("订单需求量")
Next
End If
[此贴子已经被作者于2010-12-20 17:01:38编辑过]