反饋已提交
網絡繁忙
利用 数据集 或 函数 方式制作出来的动态列默认是只能显示固定的列字段的,没有动态分组统计的功能,如果报表需要使用动态列,同时某个字段又需要汇总,那么原来的方法就不太适用了,必须进行改进。
最终效果如下图:
由于 FineReport 为普通列提供的汇总不再适用于动态列,要想实现「销量」按前面的列自动汇总的话,必须通过 SQL 进行处理,首先判断动态列是否选择了「销量」,然后把销量字段处理成汇总。
打开模板%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为空时,执行空,相当于SELECT ${if(len(col)=0,'*',replace(col,'销量','sum(销量)'))} FROM 销量
不为空时,执行 "group by "+replace(col,',销量',''),根据一个或多个列对查询结果进行分组;
group by 中不能出现销量列,所以如果勾选了「销量」列,则「销量」列用空替换
注:',销量' 中的逗号不能省略,因为用空值替换时,会出现 SQL 语句报错。
3)删掉参数 col 的变量默认值,如下图所示:
1) PC 端
保存模板,点击「分页预览」,效果如下图所示:
2) 移动端
App 端及 H5 端均支持,效果如下图所示:
已完成模板,可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\DynamicCol\动态列的分组统计.cpt
点击下载模板:动态列的分组统计.cpt
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉