润乾报表下拉数据集之异步加载

带参数查询的报表,参数模版的数据量比较大时,如果想要根据选的值动态去数据库或其他数据源查后再加载,我们可以使用“异步加载”的方式去处理。
主报表:
使用 demo 数据源自带的订单表,动态查询某订单 ID 的信息。
数据集 sql、参数以及报表设计如下图所示:

1png

2png

3png

报表保存为 订单.rpx
参数模版:
使用 demo 数据源中的运货商表,选择运货商之后再去订单表中查看哪些订单 ID
1、新建空白模版,修改报表类型为参数模版。
2、添加数据集,select 运货商 ID, 公司名称 from 运货商

4png

3、设置 C2 单元格的编辑风格,为下拉数据集,设置数据集、显示列和数据列如下图所示,并且设置 C2 的变量名称为 arg1。

5png

4、设置 E2 单元格的编辑风格同样为下拉数据集,并且设置异步加载的取数 sql 为:
select distinct 订单 ID, 订单 ID from 订单 where 运货商 =‘$1’ 如下图所示:

6png

7png

5、设置 E2 的 web 变量名称为 ddID,和主报表的参数名称保持一致。
6、保存参数模版为 订单 _arg.rpx,并且和主报表保存在同一目录下。
发布预览效果如下所示:(gif1)

1gif

注:
1)异步加载中的数据源为空表示用默认数据源,目前默认为 demo。
2)异步加载不需要指定数据集、数据列、显示列、取数表达式、关联过滤表达式。
3)SQL 中可用宏 $1,$2…表示触发关联过滤的第一个, 第二个…单元格中的参数值。
4)参数除了可以传递单值,还可以传递数组,需要用 string() 函数将数组转换成字符串。
5)如果取数 SQL 中需要传递参数,可使用以“=”开头的 SQL 表达式来实现。