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