Foxtable(狐表)用户栏目专家坐堂 → 简单得不能再简单的问题了


  共有11280人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
唐尸三摆手
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
简单得不能再简单的问题了  发帖心情 Post By: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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2011/11/16 16:36:00 [只看该作者]

但是对于每一行
Dim flt As String = "日期 = #"& dr("日期") &"# And 摘要 = '"& dr("摘要") &"'"
这段合成的条件不应该是一样的结果吧
[此贴子已经被作者于2011-11-16 16:36:03编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2011/11/16 17:03:00 [只看该作者]

呵呵,楼上的回复不一定对,因为手头没开发版不知道摘要中是否这三个项目。

 回到顶部