最新历史版本 :下拉树控件默认全选 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

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

1.2 问题描述

当前的多选下拉树没有自带的全选功能,在根节点较多的时候,全选比较麻烦。那么如何实现多选下拉树的默认全选呢?

1.3 实现思路

多选下拉树的默认值格式为:总部,财务部,部长;总部,财务部,会计。可以在 sql 中将下拉树数据字典的几列拼接起来,构造出一个默认值的格式。然后在控件值里利用 joinarray() 函数,拼接成一个字符串来作为默认值。

注:该方案对数据结构有一定限制,需要通过编写SQL输出满足下拉树默认值格式要求的字段值来实现需求。

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}'

注:这里是通过 layer1、layer2 来引用,以此类推。其中 layer1,layer2 等均是预定义好的,不可更改。

2.2 报表设计

1)参数面板拖入下拉树控件

参数面板.png

2)选择「属性表>高级>数据字典」,构建方式选择普通分层构建,选择每层对应的数据集。

层次1:

1600236998163552.png

层次2:

1600237024803001.png

层次3:

1600237040921111.png

2.3 拼接构建默认值

1)新建一个数据集 ds4,sql语句为:select 货主地区||','||货主省份||','||货主城市 from 订单 where 货主地区 !='' and 货主省份 !='' and 货主城市 !='',如下图所示:

注:此处需要根据实际需求修改 SQL,最终将每个节点值的完整路径输出即可。如果设置了返回叶子节点,则 SQL 拼接出的节点中不能有目录节点。

2)选中下拉树控件,在「控件设置>属性>高级>控件值」选择公式,输入以下公式:JOINARRAY(value("ds4",1),";"),如下图所示:

2.4 效果预览

2.4.1 PC 端

保存模板,点击预览,效果如下图所示:

下拉框效果展示.png

2.4.2 移动端

App 与 HTML5 端效果相同,如下图所示:

3. 模板下载编辑

已完成模板,可参考:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\下拉树控件默认全选.cpt

点击下载模板:下拉树控件默认全选.cpt