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

目录:

1. 概述编辑

1.1 版本

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

1.2 预期效果

当模板中有多个参数下拉框时,后面参数下拉框的选项需根据前面参数的值而改变。如下图中,省份选项需跟随地区所选值而相应变动,城市选项需跟随地区、省份所选值相应变动。

8.gif

1.3 实现思路

可以通过 SQL() 函数实现数据之间的联动,新增数据集作为各个参数框的数据字典,在后面参数框数据集中引用前面的参数作过滤。

2. 操作步骤编辑

2.1 准备数据

新建普通报表,新建数据集 ds1 ,SQL 语句为:SELECT * FROM 订单 where 货主地区='${area}' and 货主省份='${province}' and 货主城市='${city}',如下图所示:

数据集.jpg

2.2 设计表格

设计表格格式,将对应字段拖入到对应单元格中,如下图所示:

表格.jpg

2.3 添加参数控件

编辑参数面板,点击右侧「组件设置」上方的全部添加,生成参数控件,分别点击areaprovincecity参数框,选择下拉框控件,如下图所示:

1.jpg

2.4 添加参数框选项数据集

2.4.1 地区选项

新建数据集地区选项,SQL 语句为:select distinct 货主地区 from 订单,由于地区是第一个参数,可以任意选择,因此不需要联动过滤,此处使用 distinct 关键字是为了去重,如下图所示:

地区.jpg

2.4.2 省份选项

新建数据集省份选项,SQL 语句为:SELECT distinct 货主省份 FROM 订单 where 货主地区='${area}',因为省份需要根据地区值的不同显示相应的省份,所以需要设置地区过滤参数,如下图所示:

省份.jpg

2.4.3 城市选项

新建数据集城市选项,SQL 语句为:SELECT distinct 货主城市 FROM 订单 where 货主地区='${area}' and 货主省份='${province}',因为城市需要根据地区值、省份值的不同显示相应的城市,所以需要设置地区、省份过滤参数。如下图所示:

城市.jpg

2.5 设置参数控件的数据字典

1)选中地区下拉框控件,控件名称为 area ,设置数据字典为数据查询,选择对应的数据集地区选项,实际值和显示值相同为货主地区,如下图所示:

image.png

2)选中省份下拉框控件,控件名称为 province ,设置数据字典为数据查询,选择对应的数据集省份选项,实际值和显示值相同为货主省份,如下图所示:

image.png

3)选中城市下拉框控件,控件名称为 city ,设置数据字典为数据查询,选择对应的数据集城市选项,实际值和显示值相同为货主城市,如下图所示:

image.png

2.6 效果预览

2.6.1 PC 端

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

8.gif

2.6.2 移动端

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

移动端.gif

3. 模板下载编辑

已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\下拉框参数联动.cpt

点击下载模板:下拉框参数联动.cpt