以文本方式查看主题
- 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=82969)
|
-- 作者:乡里出城
-- 发布时间:2016/3/29 9:50:00
-- 代码只有同比、环比率,没增减额
GroupTableBuilder有以下属性,用于对统计结果进行进一步的分析:
- SamePeriodGrowth
逻辑型,是否生成同比增长率
- CircleGrowth
逻辑型,是否生成环比增长率
- GrandProportion
逻辑型,是否生成总占比
- GroupProportion
逻辑型,是否生成分组占比 请问一下,FOXTABLE有没是生成生成同比(或环比)增长额的代码
|
-- 作者:大红袍
-- 发布时间:2016/3/29 9:55:00
--
没有自动生成的代码。
你可以生成统计表以后,循环每一行,加减值就是答案,类似
http://www.foxtable.com/help/topics/2482.htm
|
-- 作者:乡里出城
-- 发布时间:2016/3/29 10:02:00
--
官方增加一个增长额的代码,对我们方便很多
|
-- 作者:乡里出城
-- 发布时间:2016/3/29 10:13:00
--
现在结合这个New GroupTableBuilder使用,下应的代码该怎么使用表达或修改
Select e.DataCol.Name Case "数量","日期" Dim dr1 As DataRow = e.DataRow
\'本日期的行 Dim dr2 As DataRow = e.DataTable.Find("日期 < #"
&
e.DataRow("日期") &
"#","日期 Desc")
\'前一日期的行 Dim dr3 As DataRow = e.DataTable.Find("日期 > #"
&
e.DataRow("日期") &
"#","日期") \'下一日期的行 If dr2 Is Nothing Then dr1("环比") = 0 ElseIf dr2("数量") > 0
dr1("环比") = (dr1("数量") - dr2("数量")) / dr2("数量") Else dr1("环比") = Nothing End If If dr3 IsNot Nothing If
dr1("数量") > 0 Then dr3("环比") = (dr3("数量") - dr1("数量")) / dr1("数量") Else dr3("环比") = Nothing End If End If End Select
|
-- 作者:大红袍
-- 发布时间:2016/3/29 10:31:00
--
Dim g As New GroupTableBuilder("统计表1", DataTables("订单")) g.Groups.AddDef("日期", "月") g.Groups.AddDef("产品") g.Totals.AddDef("数量") g.Build() Dim t As Table = Tables("统计表1") t.DataTable.DataCols.Add("环比", Gettype(Double)) Dim pr As Row For Each r As Row In t.Rows If pr Is Nothing OrElse r("产品") <> pr("产品") Then r("环比") = 0 Else r("环比") = r("数量") - pr("数量") End If pr = r Next
MainTable = t
|
-- 作者:乡里出城
-- 发布时间:2016/3/29 13:51:00
--
谢谢大红袍,能否再给多一个同比的增长额代码,谢谢
|
-- 作者:大红袍
-- 发布时间:2016/3/29 14:28:00
--
一样,很简单
Dim g As New GroupTableBuilder("统计表1", DataTables("订单")) g.Groups.AddDef("日期", DateGroupEnum.Year, "年") g.Groups.AddDef("日期", "月") g.Groups.AddDef("产品") g.Totals.AddDef("数量") g.Build() Dim t As Table = Tables("统计表1") t.DataTable.DataCols.Add("同比", Gettype(Double)) t.sort = "产品,月,年" Dim pr As Row For Each r As Row In t.Rows If pr Is Nothing OrElse r("产品") <> pr("产品") Then r("同比") = 0 Else r("同比") = r("数量") - pr("数量") End If pr = r Next
MainTable = t
|
-- 作者:乡里出城
-- 发布时间:2016/3/29 15:23:00
--
Dim g As New GroupTableBuilder("统计表1", DataTables("订单")) g.Groups.AddDef("日期", DateGroupEnum.Year, "年") g.Groups.AddDef("日期", "月") g.Groups.AddDef("客户") g.Groups.AddDef("产品") g.Totals.AddDef("数量") g.Build() Dim t As Table = Tables("统计表1") t.DataTable.DataCols.Add("同比", Gettype(Double)) t.sort = "产品,月,年" Dim pr As Row For Each r As Row In t.Rows If pr Is Nothing OrElse r("产品") <> pr("产品") Then r("同比") = 0 Else r("同比") = r("数量") - pr("数量") End If pr = r Next MainTable = t
可是多了一个按客户和产品进行同比就出现问题了
|
-- 作者:大红袍
-- 发布时间:2016/3/29 15:48:00
--
Dim g As New GroupTableBuilder("统计表1", DataTables("订单")) g.Groups.AddDef("日期", DateGroupEnum.Year, "年") g.Groups.AddDef("日期", "月")
g.Groups.AddDef("客户") g.Groups.AddDef("产品") g.Totals.AddDef("数量") g.Build() Dim t As Table = Tables("统计表1") t.DataTable.DataCols.Add("同比", Gettype(Double)) t.sort = "产品,客户,月,年" Dim pr As Row For Each r As Row In t.Rows If pr Is Nothing OrElse r("月") <> pr("月") OrElse r("客户") <> pr("客户") OrElse r("产品") <> pr("产品") Then r("同比") = 0 Else r("同比") = r("数量") - pr("数量") End If pr = r Next
MainTable = t
|