1 概述

1.1 版本

服务器版本
v6.9.3及之后版本

1.2 功能简介

参数联动的两种方式,其中“SQL嵌套模式”章节中已经讲解到了,但如果实际业务中使用到的数据视图(比如:存储过程、接口数据)不支持嵌套,那么SQL嵌套模式就无法实现参数联动了,就需要使用“数据源传参模式”,该文将讲解如何使用“数据源传参模式”进行参数联动。

2 实现原理

数据源传参模式的核心原理是被联动控件的取数范围是跟随该控件配置的模板数据所关联的报表参数自动进行变化的,联动关系系统会自动分析,无需用户手动配置联动关系。

同样以行业大类、行业小类之间的联动、搜索为例,其核心如下:

1)行业小类的数据视图对象SQL中,要定义一个联动参数“上级行业编码”、搜索参数“行业名称”,分别用来接收联动条件值和搜索值,如下图所示:

2)该数据视图对象拉入报表模板中,“上级行业编码”这个参数的值中选择联动父参数“行业大类”(或值表达式中包含父参数):

3)报表预览时,当用户改变参数区域中“行业大类”的值时,会触发“行业小类”控件的取数范围自动变化。
联动后的SQL大致为:

SELECT bm_hy.HYBM AS 行业编码, bm_hy.HY AS 行业名称, bm_hy.HYBM_SJ AS 上级行业编码 FROM bm_hy WHERE bm_hy.CJBJ = 2 and bm_hy.HYBM_SJ = 10000

搜索后的SQL大致为:

SELECT bm_hy.HYBM AS 行业编码, bm_hy.HY AS 行业名称, bm_hy.HYBM_SJ AS 上级行业编码 FROM bm_hy WHERE bm_hy.CJBJ = 2 and bm_hy.HYBM_SJ = 10000 and bm_hy.HY like ‘%渔%’

本模式的优点:
1)支持参数的数据视图对象都可以实现联动;
2)数据库模式下,联动效率比SQL嵌套要高;
3)联动、搜索个性化会更强。

存在的缺点:
1) 用户要在数据视图对象中预先准备好联动过滤的条件;
2) 来源于JDBC的数据视图对象必须要勾选“启用SQL解析”。

3 示例效果

同样以“行业大类”和“行业小类”参数联动为例,“行业小类”选项跟随”行业大类”所选值进行联动变化,如下图:

4 制作步骤

4.1 参数数据源准备

1)创建参数“行业大类”的数据源,如下图:

2)创建参数“行业小类”的数据源,如下图:

此处与“SQL嵌套模式”不同的是:增加了一个参数“上级行业编码”。
这就是数据源传参模式的重点,需要在参数数据源中预设一个参数,用来接收报表参数值对该数据视图进行数据过滤,从而达到参数联动的效果。

4.2 报表准备

制作一张简单的清单报表,将对应的报表数据源和参数数据源添加到报表数据中,如下图:

4.3 定义参数

定义年份、月份、行业大类和行业小类参数均为下拉框,并选择对应的数据源。

4.4 参数值设置

刚才提到了参数数据源中定义的预设参数要接收报表参数值,那么就需要将数据视图参数与报表参数进行映射,即:将“上级行业编码”的值需要接收“行业大类”的参数值。
双击“行业小类”数据源,“上级行业编码”参数值选择参数“行业大类”即可,设置如下图:

这样配置之后,参数联动就不需要手动进行配置了,参数映射关系就可以自动构建了。

作者:fancy  创建时间:2024-04-09 09:44
最后编辑:fancy  更新时间:2024-10-31 17:13