以文本方式查看主题
-
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