1. 概述
1.1 版本
报表服务器版本 | 功能变更 |
---|---|
11.0 | - |
11.0.18 | SQL 函数新增防 SQL 注入写法 |
1.2 预期效果
通过 SQL语句实现下拉框参数联动 可以实现下拉框参数的下拉列表联动,在使用中需要使下拉框默认选择列表中的第1个值,效果如下图所示:
1.3 实现思路
通过给参数面板控件值赋值可以改变显示的内容,结合 SQL函数 查询出前面参数在数据库中对应值的第1个,就可以实现查询出需要的结果。
2. 示例
2.1 设置 area 下拉框控件
1)打开模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\ParaConnection.cpt
2)选择参数面板「地区」下拉框控件,控件值选择公式,输入公式:sql("FRDemo","SELECT 货主地区 FROM 订单 ",1,1),使报表预览时默认显示订单的「货主地区」字段的第一个地区,如下图所示:
2.2 设置 province 下拉框控件
选择「省份」下拉框控件,同样设置控件值为公式:if(len($area)=0,'',sql("FRDemo","SELECT 货主省份 FROM 订单 where 货主地区 = '${area}'",1,1)),如下图所示:
注:控件值赋值的 SQL查询出来的值必须和对应的控件数据字典查询值一致,否则结果可能出错。
2.3 设置 city 下拉框控件
选择「城市」下拉框控件,同样设置控件值为公式:if(len($area)=0||len($province)=0,"",sql("FRDemo","SELECT 货主城市 FROM 订单 where 货主地区 = '${area}' and 货主省份 = '${province}'",1,1))
注:控件值赋值的 SQL查询出来的值必须和对应的控件数据字典查询值一致,否则结果可能出错。
3. 效果预览
3.1 PC 端
如本文 1.2 节所示。
3.2 移动端
App 与 HTML5 端效果相同,如下图所示:
4. 模板下载
已完成模板可参见:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\ParaConnection3.cpt
点击下载模板:ParaConnection3.cpt