历史版本7 :使用公式实现动态行列互转表 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
功能变更
11.0--

1.2 预期效果

用以实现动态筛选选择数据集所需展示的列,如下图所示: 

动态表维度筛选.gif

1.3 实现思路

使用数据集函数实现动态行列互转,进行行列维度的筛选互转.

2. 示例编辑

2.1 模板设计

  1)新建报表,添加数据集ds1:select * from 订单,如下图所示:

 1.png

2)参数栏页面拖入两个 lable 控件和两个下拉框控件,将对应行的下拉框控件的控件名称修改为 H ,同时设置数据字典,维度名称对应为数据集 ds1 所查询出的字段名,如下图所示:

  2.png

 3)修改对应列的控件名称为 Z ,同时设置数据字典,如下图所示:

3.png

2.2 页面设计

1)B1 单元格设置公式: ds1.group($H, ,TRUE),同时单元格设置横向扩展,如下图所示:

4.png

2)在 A2 单元格设置公式:ds1.group($Z, ,TRUE),设置扩展方向为纵向,如下图所示:

5.png

3)在 B2 单元格设置公式:EVAL("SUM(ds1.select(应付金额," + $H + "=B1 && " + $Z + "=A2 ))")  ,查询对应行列维度的应收金额,如下图所示:

  6.png

2.3 效果预览

2.3.1 PC 端

保存模板,分页预览,PC 端效果如本文 1.2 节所示。

2.3.2 移动端

App 及 HTML5 端效果如下图所示:

3.gif

 3. 模板下载编辑

已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\DynamicSQL\使用公式实现动态行列互转表.cpt

点击下载模板:使用公式实现动态行列互转表.cpt