DataTables("表B").datarows.clear
Dim Arys As List(Of String()) = DataTables("表A").GetUniqueValues("","日期","摘要")
For Each Ary As String() In Arys
Dim nr As DataRow = DataTables("表B").AddNew
nr("日期") = Ary(0)
nr("摘要") = Ary(1)
Next
For Each dr As DataRow In DataTables("表B").datarows
Dim flt As String = "日期 = #"& dr("日期") &"# And 摘要 = '"& dr("摘要") &"'"
dr("期初") = DataTables("表A").Compute("sum(数量)",flt)
dr("入库") = DataTables("表A").Compute("sum(数量)",flt)
dr("出库") = DataTables("表A").Compute("sum(数量)",flt)
Next
按照摘要和日期填充的表B,执行上述代码后为什么每行的期初,入库,出库都填充同样的数据呢,不应该是这样的呀
呵呵,你加粗的部分,代码完全一样,得到的结果当然应该一样才对的:
dr("期初") = DataTables("表A").Compute("sum(数量)",flt)
dr("入库") = DataTables("表A").Compute("sum(数量)",flt)
dr("出库") = DataTables("表A").Compute("sum(数量)",flt)
但是对于每一行
Dim flt As String = "日期 = #"& dr("日期") &"# And 摘要 = '"& dr("摘要") &"'"
这段合成的条件不应该是一样的结果吧
[此贴子已经被作者于2011-11-16 16:36:03编辑过]
呵呵,是我这边的问题,有点乱啊,已经找到问题的所在了
Select Case e.DataCol.Name
Case "日期","摘要"
Dim dr As DataRow = e.DataRow
Dim flt As String = "日期 = #"& dr("日期") &"# And 摘要 = '"& dr("摘要") &"'"
If dr("摘要") = "0" Then
dr("期初") = DataTables("表A").Compute("sum(数量)",flt)
Else If dr("摘要") = "1" Then
dr("入库") = DataTables("表A").Compute("sum(数量)",flt)
Else If dr("摘要") = "2" Then
dr("出库") = DataTables("表A").Compute("sum(数量)",flt)
End If
End Select
判断一下就OK了
[此贴子已经被作者于2011-11-16 16:52:22编辑过]
呵呵,楼上的回复不一定对,因为手头没开发版不知道摘要中是否这三个项目。