1. 概述编辑
1.1 应用场景
多个下拉框可以实现填报联动,效果如下图所示:
1.2 实现思路
有三种方法可以实现填报联动效果:
定义数据集并增加 where 过滤条件实现。
使用 SQL()函数 实现。
如果填报联动的数据需要查询已有的数据集,可以使用 ds1.select()函数 实现。
在填报界面中,用户可通过单元格或控件名(包括参数控件与填报控件)进行联动,两者都可以来引用控件的值。
2. 示例编辑
2.1 准备模板
打开设计器内置模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\FreeForm\FreeForm.cpt
2.2 方法一:定义数据集实现
1)新增数据集 ds2,其 SQL 语句为:SELECT 城市 FROM 雇员 where 地区='${C9}',通过 where 条件限制城市的数据为 C9 单元格选择后的值。
2)选中 F9 单元格,修改城市下拉框控件的数据字典,如下图所示:
注:填报控件除了可以根据单元格进行联动,也可以根据参数或者填报的控件名进行联动,如 C9 单元格的控件名称为地区,则将 ds2 修改为:SELECT 城市 FROM 雇员 where 地区='${地区}'也可达到同样的联动效果。
2.3 方法二:使用 SQL() 函数实现
选中 F9 单元格,修改城市下拉框控件的数据字典为公式,实际值输入公式:SQL("FRDemo","select 城市 from 雇员 where 地区='"+C9+"'",1),显示值输入公式:$$$,如下图所示:
2.4 方法三:使用 ds1.select() 函数实现
选中 F9 单元格,修改城市下拉框控件的数据字典为公式,实际值输入公式:ds1.select(城市,地区=C9),显示值输入公式:$$$,如下图所示:
2.5 效果预览
1)PC 端
保存报表,点击填报预览,效果如下图所示:
2)移动端
同时支持 App 端和 H5 端预览,效果如下图所示:
3. 模板下载编辑
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\FreeFrom\填报下拉框联动.cpt
点击下载模板:填报下拉框联动.cpt