Select Case e.DataCol.Name Case "产品","入库","出库", "仓库" Dim drs As List(of DataRow) Dim Filter As String Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & " And [产品] = '" & e.DataRow("产品") & "' and 仓库 = '" & e.DataRow("仓库") & "'" drs = e.DataTable.Select(Filter) For Each dr As DataRow In drs Filter = "[_SortKey] <= " & dr("_SortKey") & " And [产品] = '" & dr("产品") & "' and 仓库 = '" & e.DataRow("仓库") & "'" Dim Val1 As Double = e.DataTable.Compute("Sum(入库)",Filter) Dim Val2 As Double = e.DataTable.Compute("Sum(出库)",Filter) dr("库存") = Val1 - Val2 Next filter = "" If e.DataCol.Name = "产品" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then Filter = "[_SortKey] > " & e.DataRow("_SortKey") & " And [产品] = '" & e.OldValue & "' and 仓库 = '" & e.DataRow("仓库") & "'" ElseIf e.DataCol.Name = "仓库" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then Filter = "[_SortKey] > " & e.DataRow("_SortKey") & " And [产品] = '" & e.DataRow("产品") & "' and 仓库 = '" & e.Oldvalue & "'" End If if filter > "" then drs = e.DataTable.Select(Filter) For Each dr As DataRow In drs Filter = "[_SortKey] <= " & dr("_SortKey") & " And [产品] = '" & dr("产品") & "' and 仓库 = '" & dr("仓库") & "'" Dim Val1 As Double = e.DataTable.Compute("Sum(入库)",Filter) Dim Val2 As Double = e.DataTable.Compute("Sum(出库)",Filter) dr("库存") = Val1 - Val2 Next End If End Select
|