历史版本6 :公式实现下拉框参数联动 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 需求描述

下拉框参数联动 、下拉复选框参数联动 文档中,实现参数联动是在数据库查询 SQL 中设置参数,但并非所有的数据都来源于 SQL 数据查询,有可能是文件数据集、内置数据集等,这时就需要通过设置公式来实现参数联动。联动效果如下图所示:

另外数据集查询速度会受数据库性能的影响,当数据量过大时会因为加载慢导致卡顿。通过自定义内置数据集,页面初始化时直接读取数据集实现参数联动,可以提高参数联动速度。

2020-11-22_13-58-33.gif

1.2 实现思路

使用数据集函数来实现,数据集函数如何使用可参考 :数据集函数

2. 示例编辑

2.1 准备数据

1)新建模板,新建一个内置数据集 Embedded1 ,如下图所示:

image.png

2.2 添加模板参数

点击菜单栏「模板>模板参数」,新建两个模板参数「产品类型」和「产品」,如下图所示:

2020-11-22_14-09-58.png

2.3 添加控件

将两个模板添加到参数面板,并且设置控件类型为「下拉框控件」,如下图所示:

2020-11-22_14-27-25.png

2.4 绑定数据字典

2.4.1 下拉框

1)选中「产品类型」控件,在「控件设置>属性>数据字典」处为其绑定数据集 Embedded1 的产品类型列。如下图所示:

image.png

2)选中「产品」控件,在「控件设置>属性>数据字典」处为其绑定数据。如下图所示:

数据字典处、类型设置为「公式」,其中实际值处设置如下公式,显示值处空白即可。if(len($产品类型)=0,Embedded1.select(产品),eval("Embedded1.select(产品,产品类型='"+$产品类型+"')"))

image.png

3)还可将控件名称修改与数据集字段名不一致后,使用如下公式,如修改「产品类型」控件控件名为「产品类」:

Embedded1.group(产品,产品类型 = $产品类)

注:使用此公式时,参数名(控件名)不要与数据集中字段名称一致,否则公式容易因无法辨识失效。

2.4.2 下拉复选框

1)如果「产品类型」控件是复选框控件,那么可设置复选框控件返回值类型为数组,如下图所示:

image.png

2)「产品」下拉框「数据字典」处实际值公式改为:

if(len($产品类型)=0,Embedded1.select(产品),eval("Embedded1.select(产品,inarray(产品类型,['"+joinarray($产品类型,"','")+"'])>0)"))

3)还可将控件名称修改与数据集字段名不一致后,使用如下公式,如修改「产品类型」控件控件名为「产品类」:Embedded1.group(产品,INARRAY(产品类,split($产品类型,"','"))>0)

注:使用此公式时,参数名(控件名)不要与数据集中字段名称一致,否则公式容易因无法辨识失效。

2.5 效果预览

2.5.1 PC 端

保存模板,点击「分页预览」,效果如 1.1 节所示:

2.5.2 移动端

移动端 及 H5 效果如下图所示:

image.png

3. 模板下载编辑

已完成模板可参见:

%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\公式实现下拉框参数联动.cpt

%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\公式实现下拉复选框参数联动.cpt

点击下载模板:公式实现下拉框参数联动.cpt     公式实现下拉复选框参数联动.cpt