DataColChanged事件
Select Case e.DataCol.Name
Case "产品名称","今日送货数","日期"
Dim drs As List(of DataRow)
Dim Filter As String
Filter = "[日期] >= #" & e.DataRow("日期") & "# And [产品名称] = '" & e.DataRow("产品名称") & "'"
drs = e.DataTable.Select(Filter)
For Each dr As DataRow In drs
Filter = "iif([日期] < #" & dr("日期") & "#, [日期] < #" & dr("日期") & "# And [产品名称] = '" & dr("产品名称") & "', [日期] = #" & dr("日期") & "# and _sortkey <= " & dr("_sortkey") & " And [产品名称] = '" & dr("产品名称") & "')"
Dim Val1 As Double = e.DataTable.Compute("Sum(今日送货数)",Filter)
dr("已送货数") = Val1 - dr("今日送货数")
Next
If e.DataCol.Name = "产品名称" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
Filter = "[日期] > #" & e.DataRow("日期") & "# And [产品名称] = '" & e.OldValue & "'"
drs = e.DataTable.Select(Filter)
For Each dr As DataRow In drs
Filter = "iif([日期] < #" & dr("日期") & "#, [日期] < #" & dr("日期") & "# And [产品名称] = '" & dr("产品名称") & "', [日期] = #" & dr("日期") & "# and _sortkey <= " & dr("_sortkey") & " And [产品名称] = '" & dr("产品名称") & "')"
Dim Val1 As Double = e.DataTable.Compute("Sum(今日送货数)",Filter)
dr("已送货数") = Val1 - dr("今日送货数")
Next
End If
End Select