1. 概述
1.1 版本
报表服务器版本 | 功能变更 |
---|---|
11.0 | - |
1.2 预期效果
用以实现动态筛选选择数据集所需展示的列,如下图所示:
1.3 实现思路
使用数据集函数实现动态行列互转,进行行列维度的筛选互转.
2. 示例
2.1 模板设计
1)新建报表,添加数据集ds1:select * from 订单,如下图所示:
2)参数栏页面拖入两个 lable 控件和两个下拉框控件,将对应行的下拉框控件的控件名称修改为 H ,同时设置数据字典,维度名称对应为数据集 ds1 所查询出的字段名,如下图所示:
3)修改对应列的控件名称为 Z ,同时设置数据字典,如下图所示:
2.2 页面设计
1)B1 单元格设置公式: ds1.group($H, ,TRUE),同时单元格设置横向扩展,如下图所示:
2)在 A2 单元格设置公式:ds1.group($Z, ,TRUE),设置扩展方向为纵向,如下图所示:
3)在 B2 单元格设置公式:EVAL("SUM(ds1.select(应付金额," + $H + "=B1 && " + $Z + "=A2 ))") ,查询对应行列维度的应收金额,如下图所示:
2.3 效果预览
2.3.1 PC 端
保存模板,分页预览,PC 端效果如本文 1.2 节所示。
2.3.2 移动端
App 及 HTML5 端效果如下图所示:
3. 模板下载
已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\DynamicSQL\使用公式实现动态行列互转表.cpt
点击下载模板:使用公式实现动态行列互转表.cpt