1. 概述
1.1 版本
报表服务器版本 | 功能变更 |
---|---|
11.0 | - |
1.2 应用场景
下拉树控件具有多层树状结构的数据,可以用于展示不同层次之间的关系,效果如下图所示:
1.3 实现思路
下拉树控件可以通过使用普通分层构建在数据定义界面选择对应的数据集。其实就是 FR 中的动态 SQL,需要将每个 SQL 定义为一个报表数据集。在普通分层构建中层次定义如下:
层次 1:通过 数据字典 来定义下拉框的实际值与显示值。
层次 2:根据层次 1 的数据进行过滤,需要定义成数据集,然后通过数据查询返回数据集定义的列。数据集定义成:SELECT 字段 FROM 表名 WHERE 层次 1 的字段 = '${layer1}'
注1:layer1 表示取层次 1 节点的值,若在层次 3 中调用,则是 SELECT 字段 FROM 表名 WHERE 层次 2 的字段 = '${layer2}' 依次类推,其中 layer1,layer2 等均是系统参数,均为固定写法,不可更改。
注2:layer 系列参数只可用于树构建,不支持用于参数过滤。
2. 示例
2.1 准备数据
新建数据集 ds1,查询出所有地区,SQL 语句为:SELECT 货主地区 FROM 订单 where 货主地区!='',如下图所示:
新建数据集 ds2,根据第一层 layer1 的值查询出货主省份,SQL 语句为:SELECT 货主省份 FROM 订单 where 货主省份!='' and 货主地区='${layer1}',如下图所示:
新建数据集 ds3,根据前两层 layer1、layer2 的值查询出货主城市,SQL 语句为:SELECT 货主城市 FROM 订单 where 货主城市!='' and 货主地区 = '${layer1}'and 货主省份='${layer2}',如下图所示:
2.2 设计报表
1)在参数面板中拖入下拉树控件,如下图所示:
2)选择属性表>高级>数据字典,构建方式选择普通 ,选择每层对应的数据集。
第一层,选择数据查询,数据集选择 ds1 ,实际值和显示值选择货主地区,如下图所示:
第二层,选择数据查询,数据集选择 ds2 ,实际值和显示值选择货主省份,如下图所示:
第三层,选择数据查询,数据集选择 ds3 ,实际值和显示值选择货主城市,如下图所示:
2.3 效果查看
2.3.1 PC 端
点击分页预览,效果如下图所示:
2.3.2 移动端
App 与 HTML5 端,效果如下图所示:
3. 模板下载
已完成模板,可参考:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\下拉树控件分层构建.cpt
点击下载模板:下拉树控件分层构建.cpt