以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【求助】交叉统计,怎样统计表达式列[狐爸完美结束,非常感谢大红袍]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68370)

--  作者:xull1983
--  发布时间:2015/5/15 16:13:00
--  【求助】交叉统计,怎样统计表达式列[狐爸完美结束,非常感谢大红袍]
如题:比如我 有一个表

凭证id     中心编码      借方金额     贷方金额
1             A              1
1             A                              1
1             B              2 
1             B                              2
2             C              3  
2             C                              3
2             D              4
2             D                              4

统计结果为:附件上传了。。。。bin那个网页统计试过了。

凭证id               A                   B                             c                             D
            借方金额减贷方金额      借方金额减贷方金额      借方金额减贷方金额     借方金额减贷方金额
1            0                            0                                        0                                0
2            0                            0                                        0                                0



 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:交叉统计表达式.rar

[此贴子已经被作者于2015/5/16 23:01:47编辑过]

--  作者:Bin
--  发布时间:2015/5/15 16:14:00
--  
http://www.foxtable.com/help/topics/0165.htm
--  作者:xull1983
--  发布时间:2015/5/15 16:16:00
--  
我关键,,是 要 那个表达式列,,,那个计算结果应该都为0。
前面那个 借方金额、贷方金额 能弄进去。表达式列 那个交叉统计不会

--  作者:大红袍
--  发布时间:2015/5/15 16:19:00
--  

 要用代码处理。

 

 1、添加临时列 检查列

 

 2、生成交叉统计表

 

 3、循环每一行,修改检查列的内容


--  作者:xull1983
--  发布时间:2015/5/15 16:43:00
--  
不 增加列,,可以直接交叉统计表达式列吗?
--  作者:大红袍
--  发布时间:2015/5/15 16:45:00
--  

 用代码增加临时列,生成报表后删除,这样效率高一些。

 

 你上传具体例子吧。


--  作者:xull1983
--  发布时间:2015/5/15 16:49:00
--  
上传了,怎么一致看不到的。。。
--  作者:大红袍
--  发布时间:2015/5/15 16:50:00
--  

 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78

 


--  作者:xull1983
--  发布时间:2015/5/15 16:56:00
--  [求助]交叉表统计表达式列

上传附件了

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:交叉统计表达式.rar


--  作者:大红袍
--  发布时间:2015/5/15 17:05:00
--  

运行代码

 

DataTables("表A").DataCols.Add("检查", Gettype(Double))

Dim g As New CrossTableBuilder("统计表1", DataTables("表A"))
g.HGroups.AddDef("凭证ID")
g.VGroups.AddDef("中心编码")
g.Totals.AddDef("借方金额", "借方金额")
g.Totals.AddDef("贷方金额", "贷方金额")
g.Totals.AddDef("检查")
g.Build()
DataTables("表A").DataCols.Delete("检查")

For Each c As Col In Tables("统计表1").Cols
    If c.Name.StartsWith("检查") Then
        Dim idx As Integer = c.name.Replace("检查_", "")
        For Each r As Row In Tables("统计表1").rows
            r(c.name) = r("贷方金额_" & idx) - r("借方金额_" & idx)
        Next
    End If
Next

MainTable = Tables("统计表1")