Foxtable(狐表)用户栏目专家坐堂 → 跨表统计的问题


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

主题:跨表统计的问题

帅哥哟,离线,有人找我吗?
blackzhu
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
跨表统计的问题  发帖心情 Post By:2009/8/24 10:06:00 [只看该作者]

这个是跨表统计的代码:

Dim T2 As DataRow = e.DataRow
Dim Sum As Double
Select Case e.DataCol.Name
    Case "IO","口岸","色号","色名","运输方式","包装"
        Sum = DataTables("装箱单").Compute("Sum(XS)","[IO] = '" & T2("IO") & "' And [口岸] = '" & T2("口岸") & "'And [色号] = '" & T2("色号") & "'And [色名] = '" & T2("色名") & "'And [运输方式] = '" & T2("运输方式") & "'and[包装]='" & T2("包装") & "'")
        Sum = DataTables("装箱单").Compute("Sum(S)","[IO] = '" & T2("IO") & "' And [口岸] = '" & T2("口岸") & "'And [色号] = '" & T2("色号") & "'And [色名] = '" & T2("色名") & "'And [运输方式] = '" & T2("运输方式") & "'and[包装]='" & T2("包装") & "'")
        Sum = DataTables("装箱单").Compute("Sum(M)","[IO] = '" & T2("IO") & "' And [口岸] = '" & T2("口岸") & "'And [色号] = '" & T2("色号") & "'And [色名] = '" & T2("色名") & "'And [运输方式] = '" & T2("运输方式") & "'and[包装]='" & T2("包装") & "'")
        Sum = DataTables("装箱单").Compute("Sum(L)","[IO] = '" & T2("IO") & "' And [口岸] = '" & T2("口岸") & "'And [色号] = '" & T2("色号") & "'And [色名] = '" & T2("色名") & "'And [运输方式] = '" & T2("运输方式") & "'and[包装]='" & T2("包装") & "'")
        Sum = DataTables("装箱单").Compute("Sum(XL)","[IO] = '" & T2("IO") & "' And [口岸] = '" & T2("口岸") & "'And [色号] = '" & T2("色号") & "'And [色名] = '" & T2("色名") & "'And [运输方式] = '" & T2("运输方式") & "'and[包装]='" & T2("包装") & "'")
        Sum = DataTables("装箱单").Compute("Sum(XXL)","[IO] = '" & T2("IO") & "' And [口岸] = '" & T2("口岸") & "'And [色号] = '" & T2("色号") & "'And [色名] = '" & T2("色名") & "'And [运输方式] = '" & T2("运输方式") & "'and[包装]='" & T2("包装") & "'")
        Sum = DataTables("装箱单").Compute("Sum(XXXL)","[IO] = '" & T2("IO") & "' And [口岸] = '" & T2("口岸") & "'And [色号] = '" & T2("色号") & "'And [色名] = '" & T2("色名") & "'And [运输方式] = '" & T2("运输方式") & "'and[包装]='" & T2("包装") & "'")
        e.DataRow("XS") = Sum
        e.DataRow("S") = Sum
        e.DataRow("M") = Sum
        e.DataRow("L") = Sum
        e.DataRow("XL") = Sum
        e.DataRow("XXL") = Sum
        e.DataRow("XXXL") = Sum
End Select



这个是自动计算的代码:

  Dim T3 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "IO","口岸","色号","色名","运输方式","包装"
        '在表A中找出同一分类的行
        T3 = DataTables("装箱统计").Find("[IO] = '" & T3("IO") & "' And [口岸] = '" & T3("口岸") & "'And [色号] = '" & T3("色号") & "'And [色名] = '" & T3("色名") & "'And [运输方式] = '" & T3("运输方式") & "'and[包装]='" & T3("包装") & "'")
        If T3 IsNot Nothing Then '如果找到
            '针对该行的分类列,触发DataColChanged事件.
            DataTables("装箱统计").DataCols("IO").RaiseDataColChanged(T3)
        End If
End Select


  请看看是怎么回事?我统计全部为零.

 回到顶部
美女呀,离线,留言给我吧!
yangming
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/8/24 10:07:00 [只看该作者]

上传文件看看吧


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/24 10:42:00 [只看该作者]

以下是引用yangming在2009-8-24 10:07:00的发言:

上传文件看看吧

  代码有问题的,我的文件有SQL外部数据源的.


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/24 10:44:00 [只看该作者]

  这个代码是不是要在统计表中将所有涉及的列全部输入数据后才能显示.

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


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

这样?

Dim T2 As DataRow = e.DataRow
Dim Str As String
Str = "[IO] = '" & T2("IO") & "' And [口岸] = '" & T2("口岸") & "'And [色号] = '" & T2("色号") & "'And [色名] = '" & T2("色名") & "'And [运输方式] = '" & T2("运输方式") & "'and[包装]='" & T2("包装") & "'"
Select Case e.DataCol.Name
    Case "IO","口岸","色号","色名","运输方式","包装"
        T2("XS") = DataTables("装箱单").Compute("Sum(XS)",Str)
        T2("S") = DataTables("装箱单").Compute("Sum(S)",Str)
        T2("M") = DataTables("装箱单").Compute("Sum(M)",Str)
        T2("L") = DataTables("装箱单").Compute("Sum(L)",Str)
        T2("XL") = DataTables("装箱单").Compute("Sum(XL)",Str)
        T2("XXL") = DataTables("装箱单").Compute("Sum(XXL)",Str)
        T2("XXXL") = DataTables("装箱单").Compute("Sum(XXXL)",Str)
End Select
[此贴子已经被作者于2009-8-24 10:48:24编辑过]

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


加好友 发短信
等级:幼狐 帖子:180 积分:1239 威望:0 精华:0 注册:2009/5/5 10:20:00
  发帖心情 Post By:2009/8/24 10:50:00 [只看该作者]

你sum只能得到一个值吧?
5楼代码应该是可以的

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/24 10:53:00 [只看该作者]

以下是引用czy在2009-8-24 10:46:00的发言:
这样?

Dim T2 As DataRow = e.DataRow
Dim Str As String
Str = "[IO] = '" & T2("IO") & "' And [口岸] = '" & T2("口岸") & "'And [色号] = '" & T2("色号") & "'And [色名] = '" & T2("色名") & "'And [运输方式] = '" & T2("运输方式") & "'and[包装]='" & T2("包装") & "'"
Select Case e.DataCol.Name
    Case "IO","口岸","色号","色名","运输方式","包装"
        T2("XS") = DataTables("装箱单").Compute("Sum(XS)",Str)
        T2("S") = DataTables("装箱单").Compute("Sum(S)",Str)
        T2("M") = DataTables("装箱单").Compute("Sum(M)",Str)
        T2("L") = DataTables("装箱单").Compute("Sum(L)",Str)
        T2("XL") = DataTables("装箱单").Compute("Sum(XL)",Str)
        T2("XXL") = DataTables("装箱单").Compute("Sum(XXL)",Str)
        T2("XXXL") = DataTables("装箱单").Compute("Sum(XXXL)",Str)
End Select
[此贴子已经被作者于2009-8-24 10:48:24编辑过]

  C版,你的公式是不是放在装箱统计表中,我放入后显示全部为空?


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/24 11:03:00 [只看该作者]

C版我查过了,必须要将装箱统计中列输入全部输入和装箱单匹配的数据才能显示,但表达式是不需要的,请问这个有办法想吗?
  另外我想问一下,如T2("XXXL") = DataTables("装箱单").Compute("Sum(XXXL)",Str)这句代码,我这个T2(XXXL)=DataTables("装箱单").Compute("Sum(XXXL)",Str)*(箱数)的,这个公式怎么写?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/24 11:06:00 [只看该作者]

  还有我的自动计算更新的代码有问题吗?

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


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

以下是引用blackzhu在2009-8-24 11:03:00的发言:
C版我查过了,必须要将装箱统计中列输入全部输入和装箱单匹配的数据才能显示,但表达式是不需要的,请问这个有办法想吗?
  另外我想问一下,如T2("XXXL") = DataTables("装箱单").Compute("Sum(XXXL)",Str)这句代码,我这个T2(XXXL)=DataTables("装箱单").Compute("Sum(XXXL)",Str)*(箱数)的,这个公式怎么写?


应该是代码涉及的任一列有变动都会触发的。但要满足你设置的条件才能有结果。
箱数是当前表吗?
如果是当前表, *T2(”箱数“)

[此贴子已经被作者于2009-8-24 11:51:03编辑过]

 回到顶部
总数 13 1 2 下一页