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

可选查询条件

1. 概述

1.1 功能概述

在实际应用当中,我们经常会遇到如下需求场景:当用户不输入报表参数时,报表显示所有数据;当用户输入查询参数时,则按照用户输入的参数值来过滤数据。

报表是通过动态SQL查询来实现此类需求的,接下来就为您介绍此类需求的实现过程。

2. 操作步骤

2.1 新建报表,添加报表参数

  1. 如下图所示设置参数名称提示文本、数据类型 。然后将参数的允许空白功能打开,并为参数添加一个空的默认值。

    PixPin_2025-07-01_11-10-12

2.2 添加新建数据集

  1. 添加基于 WynDemoData 的新建数据集。例如本例中使用SQL语句: select * from 销售明细 where 1=2 ,单击验证按钮,可见获取到18个查询字段。

    PixPin_2025-07-01_12-14-26

    type=info

    提示: 此处没有直接使用动态SQL查询语句是因为动态SQL语句不能直接获取到数据库中的字段列表,我们需要先通过静态SQL将需要的字段获取到,然后再改为动态SQL语句。

2.3 将静态SQL语句修改为动态SQL语句

  1. 修改sql,本例中使用的动态SQL语句为:select * from 销售明细 where 1=1 {IIF(@报表参数1 = "", "", " and 销售大区='" & @报表参数1 & "'")},单击确定按钮。

  • SQL含义: 如果报表参数1的值为空,则不附加查询条件,否则将加上 and 销售大区=’参数值’ 作为查询条件。

    PixPin_2025-07-01_11-13-31

2.4 添加表格组件

  1. 在数据集中开启多选,勾选多个字段,然后拖拽到报表设计器的画布区域中。

    PixPin_2025-07-01_11-14-20

2.5 预览报表

  1. 在预览界面,可见报表参数为空白,但是表格会直接展示所有的数据;

    PixPin_2025-07-01_11-15-11

  2. 当给报表参数设置值后,表格会根据报表参数值进行过滤查询。

    PixPin_2025-07-01_11-16-20

    type=info

    提示:

    为了更方便地看出实际进行数据查询的SQL语句,我们可以在报表中添加一个文本框组件,并将动态SQL语句粘贴到文本框中,然后再预览报表。

    PixPin_2025-07-01_11-17-42

    当不输入参数时实际生效的SQL语句为:

    select * from 销售明细 where 1=1

    当输入查询条件“西北”时,实际生效的SQL语句为:

    select * from 销售明细 where 1=1 and 销售大区='西北'

    PixPin_2025-07-01_11-18-00

    PixPin_2025-07-01_11-18-14