以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]交叉统计问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99554)

--  作者:wzcjc1982
--  发布时间:2017/4/21 11:13:00
--  [求助]交叉统计问题
在进行交叉统计时怎么对水平列进行分组统计,教程里看到的都是直接合计了,我想要按照多层表头进行每一层的统计。比如有列华东区_XX,华东区_XX,华南区_XX我现在想把华东区和华南区分开来统计
--  作者:有点色
--  发布时间:2017/4/21 11:40:00
--  

 需要动态添加合计列,循环每一行,一个一个的赋值。

 

 具体实例上传上来。


--  作者:wzcjc1982
--  发布时间:2017/4/22 20:34:00
--  
麻烦您给看看,我想在生成的分析表里面水平的每个区进行汇总统计
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多福居门店月单品计划表.rar



--  作者:有点色
--  发布时间:2017/4/23 12:27:00
--  

mark 交叉统计

 

Dim b As new CrossTableBuilder("单品计划交叉表",DataTables("明细表"))
b.HGroups.AddDef("类别")
b.HGroups.AddDef("编码")
b.HGroups.AddDef("名称")
b.HGroups.AddDef("规格")
b.HGroups.AddDef("单位")
b.HGroups.AddDef("单价")
b.VGroups.AddDef("区域")
b.VGroups.AddDef("门店")
b.Totals.AddDef("数量")
b.Totals.AddDef("金额")
b.HorizontalTotal= True
b.Build
Dim t As Table = Tables("单品计划交叉表")
Dim dq As String = ""
Dim str1 As String = ""
Dim str2 As String = ""
Dim ccount = t.Cols.count-1
Dim i As Integer = 0
Do While i <= ccount
    Dim cap As String = t.Cols(i).Caption
    If cap.Contains("金额") AndAlso cap.Contains("_合计") = False Then
        Dim cdq = cap.Split("_")(0)
       
        If cap.Contains("合计") = False Then
            Dim idx As Integer = t.Cols(i).Name.Split("_")(1)
            str1 &= "isnull(数量_" & idx & ",0)+"
            str2 &= "isnull(金额_" & idx & ",0)+"
        End If
        If dq > "" AndAlso cdq <> dq Then
            t.DataTable.DataCols.Add(dq & "_合计_数量", Gettype(Double),str1.trim("+"))
            t.DataTable.DataCols.Add(dq & "_合计_金额", Gettype(Double),str2.trim("+"))
            t.Cols(dq & "_合计_金额").Move(i-1)
            t.Cols(dq & "_合计_数量").Move(i-1)
            ccount += 2
            i += 2
            str1 = ""
            str2 = ""
        End If
        dq = cdq
    End If
    i += 1
Loop

MainTable = t