以文本方式查看主题 - 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("订单")) 上面的代码无法出现同比环比,应该怎么写代码才可以? 谢谢! |
-- 作者:有点甜 -- 发布时间:2018/7/9 17:00:00 -- 需要自己实现功能。
动态添加临时列,然后循环每一行,计算。
或者是自己实现分组、交叉统计的代码 http://www.foxtable.com/webhelp/scr/2394.htm
|
-- 作者:HappyFt -- 发布时间:2018/7/14 10:55:00 -- 如果自己写代码增加临时列发现一个问题如下图 上图中的数量与金额不能与左边的数量与金额合并在一起显示了,应该是数量下面有值,同比,环比,金额也相同 代码是这样的 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编辑过]
|