以文本方式查看主题

-  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=129229)

--  作者:狐说八道
--  发布时间:2018/12/24 17:18:00
--  [求助]如何显示环比和同比的具体数值
各位老师,分组统计可以生成同比增长率和环比增长率,我想一起显示出同比和环比的具体数值,
请问代码该怎么写??

--  作者:有点甜
--  发布时间:2018/12/24 17:35:00
--  
需要编写代码增加列,然后动态插入数据。具体问题,做个实例发上来测试。
--  作者:狐说八道
--  发布时间:2018/12/25 10:52:00
--  

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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据分析.foxdb


[此贴子已经被作者于2018/12/25 10:53:19编辑过]

--  作者:有点甜
--  发布时间:2018/12/25 11:12:00
--  
Dim g As New GroupTableBuilder("统计表1", DataTables("订单"))
g.Groups.AddDef("日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("日期", "月")
g.Totals.AddDef("数量")
g.SamePeriodGrowth = True
g.CircleGrowth = True
g.Build()
Dim t As Table = Tables("统计表1")
t.DataTable.DataCols.Add("同比增长", Gettype(String))
t.DataTable.DataCols.Add("环比增长", Gettype(String))
For Each r As Row In t.Rows
    If r("数量stp") <> Nothing Then
        Dim i = t.FindRow("年=" & r("年")-1 & " And 月=" & r("月"))
        If i >= 0 Then
            r("同比增长") = Format(r("数量stp"), "0.00%") & "(" & r("数量") - t.Rows(i)("数量") & ")"
        End If
    End If
    If r("数量cle") <> Nothing Then
        Dim i As Integer
        If r("月") = 1 Then
            i = t.FindRow("年=" & r("年")-1 & " And 月=12")
        Else
            i = t.FindRow("年=" & r("年") & " And 月=" & r("月")-1)
        End If
        If i >= 0 Then
            r("环比增长") = Format(r("数量cle"), "0.00%") & "(" & r("数量") - t.Rows(i)("数量") & ")"
        End If
    End If
Next
MainTable = Tables("统计表1")

--  作者:狐说八道
--  发布时间:2018/12/25 11:43:00
--  
谢谢老师,想问下  If r("数量stp") <> Nothing Then 这行,为什么要加stp和cle??
[此贴子已经被作者于2018/12/25 11:44:28编辑过]

--  作者:有点甜
--  发布时间:2018/12/25 12:57:00
--  
以下是引用狐说八道在2018/12/25 11:43:00的发言:
谢谢老师,想问下  If r("数量stp") <> Nothing Then 这行,为什么要加stp和cle??
[此贴子已经被作者于2018/12/25 11:44:28编辑过]

 

参考

 

http://www.foxtable.com/webhelp/scr/0193.htm