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

目录:

1. 概述编辑

1.1 预期效果

下拉树选择参数时,希望默认全选,下拉树中显示“选中”状态,且默认值返回完整的节点路径。效果如下图所示:

222

1.2 实现思路

通过属性>控件值,默认勾选全部下拉参数。

实现思路.png

2.示例编辑

2.1 准备数据

数据集 ds1,查询出所有地区,SQL 语句为:SELECT 货主地区 FROM 订单 where 货主地区!=""

DS1.png

数据集 ds2,根据第一层 layer1 的值查询出省份,SQL 语句为:SELECT  货主省份 FROM 订单 where 货主省份!="" and 货主地区='${layer1}'

DS2.png

数据集 ds3,根据前两层 layer1、layer2 的值查询出城市,SQL 语句为:SELECT  货主城市 FROM 订单 where 货主城市!="" and 货主地区 = '${layer1}'and 货主省份='${layer2}'

DS3.png

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

2.2 设计报表

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

参数面板.png

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

层次1:

1600236998163552.png

层次2:

1600237024803001.png

层次3:

1600237040921111.png

3)设置属性>高级>多选,高级>结果返回叶子节点,高级>结果返回完整层次路径。

属性设置.png

4)属性表>高级>控件值,选择公式,弹出公式定义对话框,输入公式,如下图所示:EVAL("["+JOINARRAY(sql("FRDemo", "select '['||''''||货主地区||''''||','||''''||货主省份||''''||','||''''||货主城市||''''||']' from 订单", 1), ",")+"]") 

实现思路.png

下拉树默认值设置,要求默认值必须填写节点的完整路径,详细内容可以参考:下拉树默认值设置 ,所以下拉树默认全选,就要在下拉树控件值处以一定格式填写下拉树所有节点的完整路径。

举例:如两个子节点北京、济南,就要将节点路径写成字符串 [['华北','北京','北京'],['华东','山东','济南']],最后通过 EVAL 函数让下拉树呈现出选中节点的状态。

公式解释

以下用 * 代替 sql("FRDemo", "select '['||''''||货主地区||''''||','||''''||货主省份||''''||','||''''||货主城市||''''||']' from 订单", 1)

步骤
作用公式说明
*
取出 FRDemo 中订单表的货主地区、货主省份、货主城市字段,将这三个字段拼接成节点完整路径,返回值为数组,每一个节点的完整路径对应该数组的一个元素。

SQL(CName,sql,col,row)返回通过 sql 语句从 CName 数据连接中获得的数据表的第col列第row行

"["+JOINARRAY(*, ",")+"]"将拼接得到的节点路径数组转换成字符串,再在字符串两端拼接[ ]得到一个包含所有节点路径的表达式字符串。JOINARRAY(array,sepa):返回一个由 sepa 作为分隔符的字符串
EVAL("["+JOINARRAY(*, ",")+"]")作用下拉树控件,呈现下拉树选中默认值的效果。

EVAL(exp)返回表达式exp计算后的结果。exp:一个表达式形式字符串

注:* 式中 || 为字符串拼接运算符,不同类型的数据库中字符串拼接运算符不同,所以实际应用中请根据使用的数据库类型修改拼接运算符。

另外默认值全选也可以参考 下拉树默认值设置 ,将默认值格式设置成 总部,财务部,部长;总部,财务部,会计 的格式存储在字段中,控件值处选择以「字段」的形式呈现。

2.3 效果预览

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

注:该方法不支持移动端。

下拉框效果展示.png

3. 模板下载编辑

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

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