以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  同比环比统计问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=121544)

--  作者:happyft
--  发布时间:2018/7/9 10:42:00
--  同比环比统计问题

图片点击可在新窗口打开查看此主题相关图片如下:数据统计.jpg
图片点击可在新窗口打开查看


帮助中的例子是直接用日期列生成同比环比,但现在查询得到的表中没有日期列,只有象统计结果中的年,月那样的列,

Dim g As New GroupTableBuilder("统计表2", DataTables("订单"))
g.Groups.AddDef(
"年")
g.Groups.AddDef(
"月"
)
g.Totals.AddDef(
"数量", "", "数量_值")
g.Totals.AddDef(
"金额", "", "金额_值")
g.SamePeriodGrowth =
True
g.CircleGrowth =
True
g.Build()

MainTable
= Tables("统计表2")


上面的代码无法出现同比环比,应该怎么写代码才可以?


谢谢!


--  作者:有点甜
--  发布时间:2018/7/9 17:00:00
--  

需要自己实现功能。

 

动态添加临时列,然后循环每一行,计算。

 

或者是自己实现分组、交叉统计的代码 http://www.foxtable.com/webhelp/scr/2394.htm

 


--  作者:HappyFt
--  发布时间:2018/7/14 10:55:00
--  
如果自己写代码增加临时列发现一个问题如下图

图片点击可在新窗口打开查看此主题相关图片如下:同比.jpg
图片点击可在新窗口打开查看

上图中的数量与金额不能与左边的数量与金额合并在一起显示了,应该是数量下面有值,同比,环比,金额也相同
代码是这样的
Dim b As New GroupTableBuilder("统计表1",DataTables(winName & "_Table1"))
b.Groups.AddDef("供应商")
b.Totals.AddDef("数量", "", "数量_值")
b.Totals.AddDef("金额", "", "金额_值")
Tables(winName & "_Table2").DataSource = b.BuildDataSource() \'打开生成的统计表
\'---循环各行生成同比及环比
Dim tbl2 As Table = Tables(winName & "_Table2")
tbl2.DataTable.DataCols.Add("数量同比", Gettype(String),16,"","数量_同比")
tbl2.DataTable.DataCols.Add("数量环比", Gettype(String),16,"","数量_环比")
tbl2.DataTable.DataCols.Add("金额同比", Gettype(String),16,"","金额_同比")
tbl2.DataTable.DataCols.Add("金额环比", Gettype(String),16,"","金额_环比")
......

除了上面的数量与金额统计都自己写代码外,有什么办法让两个数量及金额合并在一起显示?


--  作者:有点蓝
--  发布时间:2018/7/14 11:01:00
--  
添加列后移动到指定位置,比如http://www.foxtable.com/webhelp/scr/0587.htm

tbl2.cols("数量同比").move(4)

--  作者:HappyFt
--  发布时间:2018/7/14 11:28:00
--  
这样移动表格那里会闪烁一下,用一下面防止屏闪的也没用
 Forms(winName).StopRedraw
 Tables(winName & "_Table2").StopRedraw
    tbl2.cols("数量同比").move(4)
    tbl2.cols("数量环比").move(5)
 Forms(winName).ResumeRedraw
 Tables(winName & "_Table2").ResumeRedraw


--  作者:有点蓝
--  发布时间:2018/7/14 11:36:00
--  
这个没有办法
--  作者:HappyFt
--  发布时间:2018/7/14 11:53:00
--  
为什么同环比必须要是日期列才行啊,用查询表生成的年及月要是可以的话用系统默认的方式很简单,看来分组及统计数量及金额同环比等全部都要自己写代码了
--  作者:有点蓝
--  发布时间:2018/7/14 12:00:00
--  
特殊情况只能自己编码处理,狐表也没有办法去考虑所有的特殊用法
--  作者:y2287958
--  发布时间:2018/7/14 17:00:00
--  
可用根据”年“和”月“列增加一个临时的日期列,然后再统计,这样不用写统计代码。
搞不定可以上例子的
[此贴子已经被作者于2018/7/14 20:34:46编辑过]