以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  交叉统计后的数据如果提取每行的汇总数据?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138042)

--  作者:happyft
--  发布时间:2019/7/21 22:11:00
--  交叉统计后的数据如果提取每行的汇总数据?

图片点击可在新窗口打开查看此主题相关图片如下:汇总.jpg
图片点击可在新窗口打开查看


如上图是交叉统计的结果,现在在表的最后增加了一临时列达成,想实现用每行后后的合计数据
如果合计的出货数量 >= (订单数量+退货数量) 就表示达成
但无法用 r(合计出货数量)等来判断,
用下面的每行计算原来的数据 ,结果Sum1,Sum2,Sum3都是0
 Dim Sum1,Sum2,Sum3 As Double
    For Each r As Row In tbl.Rows
        Sum1 = 0
        Sum2 = 0
        Sum3 = 0
        Sum1 = tbl.Compute("Sum(订单数量)", "产品编码 = \'" & r("产品编码") & "\'")
        Sum2 = tbl.Compute("Sum(出货数量)", "产品编码 = \'" & r("产品编码") & "\'")
        Sum3 = tbl.Compute("Sum(退货数量)", "产品编码 = \'" & r("产品编码") & "\'")
        If Sum2 >= (Sum1 + Sum3) Then
            r("达成") = 1
        Else
            r("达成") = 0
        End If
    Next
这种情况应该如何获取每种产品的总的出货数量,订单数量及退货数量?

谢谢!

--  作者:HappyFt
--  发布时间:2019/7/21 22:19:00
--  
可以了,上面不用在绑定表中计算即可,而用查询得到的原始表来计算就行
Sum1 = dt.Compute("Sum(订单数量)", "产品编码 = \'" & r("产品编码") & "\'")

但有没有办法直接获取汇总后的那三个数量不判断呢?

--  作者:有点蓝
--  发布时间:2019/7/21 22:56:00
--  
For Each r As Row In tbl.Rows
    r("达成") = IIF(r("出货数量") >= r("订单数量")+r("退货数量"),1,0)
Next

--  作者:HappyFt
--  发布时间:2019/7/24 20:07:00
--  
出货数量,订单数量,退货数量这三列是汇总得到的,这样使用会出错,提示找不到列
 \'---交叉汇总数据
    Dim tbl As Table = Tables(e.Form.name & "_主表")
    Dim b As New CrossTableBuilder("统计表1",dt)
    b.HGroups.AddDef("产品编码") \'添加客户列用于水平分组
    b.HGroups.AddDef("品名") \'添加客户列用于水平分组
    b.HGroups.AddDef("规格") \'添加客户列用于水平分组
  ...
    b.Totals.AddDef("订单数量") \'添加数量列用于统计
    b.Totals.AddDef("出货数量") \'添加数量列用于统计
    b.Totals.AddDef("退货数量") \'添加数量列用于统计
    b.HorizontalTotal = True \'水平方向自动汇总
    b.VerticalTotal = True \'垂直方向自动汇总

我是想问这种汇总得到的统计列如何直接引用(1楼我是通过计算重新得到这三个数量,感觉有点重复)?

--  作者:有点蓝
--  发布时间:2019/7/25 8:38:00
--  
For Each r As Row In tbl.Rows
    r("达成") = IIF(r("合计_出货数量") >= r("合计_订单数量")+r("合计_退货数量"),1,0)
Next