看懂这部分即可,下面的不用看
找到当前行的上一行
dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [产品] = '" & mr("产品") & "'", "[_SortKey] Desc")
If dr Is Nothing Then '如果没找到,直接计算
jk = DataTables("例子二").SQLCompute("Sum(入库)","[_SortKey] < " & mr("_SortKey") & " And 产品 = '" & mr("产品") & "'")
ck = DataTables("例子二").SQLCompute("Sum(出库)","[_SortKey] < " & mr("_SortKey") & " And 产品 = '" & mr("产品") & "'")
mr("库存") = e.DataRow("入库") - e.DataRow("出库") + jk - ck
dr = mr
End If
计算当前行一下的所有行,等于上一行的库存+本行入库-本行出库
drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [产品] = '" & dr("产品") & "'", "[_SortKey]")
For i As Integer = 1 To drs.Count - 1
drs(i)("库存") = drs(i-1)("库存") + drs(i)("入库") - drs(i)("出库")
Next