[]
        
在线Demo 免费试用
(Showing Draft Content)

报表动态参数的实现

1. 概述

1.1 功能概述

报表参数主要用于数据过滤,实际业务中,有些过滤条件是可输可不输的,这种过滤条件就需要用到动态参数,也叫可选参数。报表的动态参数有两种实现方式:

  • 动态 SQL 语句

  • 直接使用 SQL 语句的 OR 子句

2. 操作步骤

2.1 操作步骤-通过动态 SQL 语句实现

  1. 动态SQL语句是指数据集的查询语句,就是根据用户是否输入作为查询条件的参数值,动态生成 SQL 语句。实现这种动态 SQL 语句的方法详情请参考 可选查询条件

  • 例如: 在对一个销售订单数据表“Demo_销售明细”查询时。

    • 如果用户没有输入查询条件,SQL 语句如下:

      select * from Demo_销售明细
    • 如果用户输入了“销售大区”这个过滤条件,SQL 语句就要变成

      select * from Demo_销售明细 where 销售大区=@大区参数

2.2 操作步骤-直接使用 OR 子句

  1. 在报表设计器中,创建报表参数。

    PixPin_2025-07-08_13-50-04

  2. 使用表达式形式的动态 SQL 语句,需要设计人员理解IIF函数的用法。更简捷的方法是在 SQL 语句的 where 条件中使用 OR子句,如下图:

    PixPin_2025-07-08_13-42-23

    1)这时的 SQL 语句是:select * from 销售明细 where(销售大区=@查询参数1 OR @查询参数1=''),其中,where 条件中含有OR子句。

    2)表达式含义: 要么销售大区字段等于用户输入的大区参数的值,要么用户输入的大区参数是一个空的字符串(也就是没输入参数值)。两个条件满足一个即可,这样就可以根据用户是否输入查询条件,决定是显示全部记录还是仅显示部分符合查询条件的记录。

    type=info

    注意

    1)这种方法需要先定义一个查询参数,通过{@大区参数} 这样的表达式,绑定报表参数,以传递用户输入的查询条件。

    2)尽管这种方式具有简捷方便的特点,但是仅适用于 where 条件,如果报表需要根据参数的不同,动态决定 from 哪个表,或者动态决定 select 哪些字段,那就必须使用上面的动态 SQL 语句的方法。

  3. 按实际需求设计报表内容,比如使用表格组件,数据绑定如下图。

    PixPin_2025-07-08_13-50-38

  4. 预览查看报表内容。

    当大区参数为空白时,显示所有大区数据

    当大区参数为西北时,仅显示西北大区的数据

    PixPin_2025-07-08_13-51-08

    PixPin_2025-07-08_13-51-58