Page tree
Skip to end of metadata
Go to start of metadata

1. 内容概述



在实际应用当中,我们经常会遇到如下需求场景:

即当用户不输入报表参数时,报表显示所有数据;当用户输入查询参数时,则按照用户输入的参数值来过滤数据。

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


2. 操作步骤



(1)  新建报表,添加报表参数

如下图所示设置参数名称提示文本、数据类型。然后将参数的“可不输入”功能打开,并为参数添加一个空的默认值。

设置完成后,单击上方的返回箭头返回到报表设计器当中。


(2)  添加内嵌数据集

添加基于WynDemoDataV3的内嵌数据集。


(3)  使用静态SQL语句获取字段列表

例如本例中使用SQL语句:select * from 销售明细 where 1=2,单击“验证”按钮,可见获取到18个查询字段。


提示

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

(4)  将静态SQL语句修改为动态SQL语句

修改后,单击“验证”和“确定”按钮。

本例中使用的动态SQL语句为: 

select * from 销售明细 where 1=1 {IIF(@报表参数1 = "", "", " and 销售大区='" & @报表参数1 & "'")}

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


(5)  添加表格组件

并绑定数据集中的数据字段。


(6)  预览报表

可见报表可以直接打开并展示所有的数据;


单击參數按鈕展开查询面板,可添加查询条件进行过滤查询。



提示

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


预览可以看出,当不输入参数时实际生效的SQL语句为:select * from 销售明细 where 1=1

当输入查询条件“东北”时,实际生效的SQL语句为:select * from 销售明细 where 1=1 and 销售大区='东北'




相关资源:


注意

如需寻求在线帮助,请访问 ActiveReports 求助中心

如需了解更多ActiveReports产品特性,请访问 ActiveReports 官方网站

ActiveReports 官方技术交流群:109783140

下载产品体验产品功能:http://www.gcpowertools.com.cn/products/download.aspx?pid=16

  • No labels