以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何进行统计汇总  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=49824)

--  作者:hrw68529
--  发布时间:2014/4/24 16:02:00
--  [求助]如何进行统计汇总
如:例子,点击“备案汇总”,能生成“数据备案汇总”表,我现在想要的是,按年度进行小计,然后,再总计,怎么改写代码,备案汇总代码如下:
Dim g As New CrossTableBuilder("数据备案汇总", DataTables("人员增减"))
g.HGroups.AddDef("年度")
g.HGroups.AddDef("县区")
g.VGroups.AddDef("渠道", "渠道_{0}")
g.Totals.AddDef("渠道", AggregateEnum.Count, "渠道")
\'g.Subtotal = True \'生成汇总模式
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()
MainTable = Tables("数据备案汇总")

例子:

--  作者:有点甜
--  发布时间:2014/4/24 16:17:00
--  
 没有数据源呐,亲,把数据源上传才能测试的。
--  作者:hrw68529
--  发布时间:2014/4/24 16:18:00
--  
数据源在Attachments中的人员增减即是


--  作者:有点甜
--  发布时间:2014/4/24 16:19:00
--  
 看2楼,这句代码不是可以生成年度汇总了么?   g.Subtotal = True
--  作者:有点甜
--  发布时间:2014/4/24 16:20:00
--  
 呵呵,我看错了,有数据源!
--  作者:hrw68529
--  发布时间:2014/4/24 16:24:00
--  
 g.Subtotal = True生成的只是数据个数,不是数据合计,况且不能分年度小计
--  作者:hrw68529
--  发布时间:2014/4/24 16:29:00
--  
你看,生成的是个数,不是汇总数据,

图片点击可在新窗口打开查看此主题相关图片如下:截图00.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2014/4/24 16:37:00
--  

 嗯,好的,如下代码,参考

 

http://www.foxtable.com/help/topics/1594.htm

 

 

Dim g As New CrossTableBuilder("数据备案汇总", DataTables("人员增减"))
g.HGroups.AddDef("年度")
g.HGroups.AddDef("县区")
g.VGroups.AddDef("渠道", "渠道_{0}")
g.Totals.AddDef("渠道", AggregateEnum.Count, "渠道")
g.Subtotal = True \'生成汇总模式
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()

For i As Integer = 0 To Tables("数据备案汇总").Rows.Count(True) - 1
    Dim r As Row = Tables("数据备案汇总").rows(i, True)
    If r.IsGroup Then
        Dim filter As String = ""
        Dim ary() As String = r("年度").split(" ")
        If ary(0) = "小计" Then
            filter = "年度 = \'" & ary(1) & "\'"
        End If
        For Each c As Col In Tables("数据备案汇总").Cols
            If c.IsNumeric Then
                r(c.name) = Tables("数据备案汇总").Compute("sum(" & c.name & ")", filter)
            End If
        Next
    End If
Next

MainTable = Tables("数据备案汇总")


--  作者:hrw68529
--  发布时间:2014/4/24 16:40:00
--  
天啊,你也太厉害了吧,什么问题到你那都能解决,谢谢


--  作者:zyqzyy
--  发布时间:2014/4/24 19:10:00
--  

正有这个需要,谢谢!