历史版本15 :解决动态列的分组统计问题 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 概述编辑
1.1 问题描述
利用 数据集 或 函数 方式制作出来的动态列默认是只能显示固定的列字段的,没有动态分组统计的功能,如果报表需要使用动态列,同时某个字段又需要汇总,那么原来的方法就不太适用了,必须进行改进。
最终效果如下图:
1.2 实现思路
由于 FineReport 为普通列提供的汇总不再适用于动态列,要想实现「销量」按前面的列自动汇总的话,必须通过 SQL 进行处理,首先判断动态列是否选择了「销量」,然后把销量字段处理成汇总。
2. 示例编辑
2.1 准备模板
打开模板%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameterr\DynamicCol\数据集参数实现动态列.cpt。
1)将 A2-F2 单元格的数据设置改由「列表」改成「分组」,如图:
2)修改数据集 ds1 的 SQL 语句为:SELECT ${if(len(col)=0,'*',replace(col,'销量','sum(销量)'))} FROM 销量 ${if(len(col)<1,"","group by "+replace(col,',销量',''))},并删掉参数 col 的变量默认值,如下图所示:
2.2 效果预览
1) PC 端
保存模板,点击「分页预览」,效果如下图所示:
2) 移动端
App 端及 H5 端均支持,效果如下图所示:
3. 模板下载编辑
已完成模板,可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\DynamicCol\动态列的分组统计.cpt
点击下载模板:动态列的分组统计.cpt