Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:简单得不能再简单的问题了

1楼
唐尸三摆手 发表于:2011/11/16 16:20:00

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

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,执行上述代码后为什么每行的期初,入库,出库都填充同样的数据呢,不应该是这样的呀

2楼
狐狸爸爸 发表于:2011/11/16 16:27:00

呵呵,你加粗的部分,代码完全一样,得到的结果当然应该一样才对的:

 

dr("期初") = DataTables("表A").Compute("sum(数量)",flt)
dr("入库") = DataTables("表A").Compute("sum(数量)",flt)
dr("出库") = DataTables("表A").Compute("sum(数量)",flt)

3楼
唐尸三摆手 发表于:2011/11/16 16:36:00
但是对于每一行
Dim flt As String = "日期 = #"& dr("日期") &"# And 摘要 = '"& dr("摘要") &"'"
这段合成的条件不应该是一样的结果吧
[此贴子已经被作者于2011-11-16 16:36:03编辑过]
4楼
唐尸三摆手 发表于:2011/11/16 16:42:00
呵呵,是我这边的问题,有点乱啊,已经找到问题的所在了
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编辑过]
5楼
czy 发表于:2011/11/16 16:56:00
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)
    nr(Ary(1)) = DataTables("表A").Compute("sum(数量)","日期 = #" & Ary(0) & "# And 摘要 = '" & Ary(1) & "'")
Next
6楼
czy 发表于:2011/11/16 17:03:00
呵呵,楼上的回复不一定对,因为手头没开发版不知道摘要中是否这三个项目。
共6 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04297 s, 3 queries.