参数报表实现默认查询的两种方法
参数报表功能比较强大,可以根据自己的需求把需要的数据查询出来,既然用到了查询就少不了需要根据默认条件来查询。因为很多时候我们需要不输入条件就可以看到报表。本文就来介绍两种实现默认查询的方法。
第一种方法:参数编辑框”值表达式”中设置默认值
此方法常用于以某个固定值默认查询
这个方法很简单,直接在报表参数编辑里设置就可以了。
以任意带参数的报表为例在参数报表中设置默认值,如下图给参数”area”设置默认值为”华北”
浏览报表的时候就会查询出货主地区为华北的数据。
第二种方法:利用动态宏设置默认查询条件
此方法常用于默认不查询任何数据
大致思路: 通过动态宏返回不同的查询条件进行查询,如果选择了查询条件并点击”查询”按钮进行查询,动态宏就返回空值,不影响报表查询,报表根据选择的查询条件来查询;如果没有选择查询条件也没有点击 “查询”按钮,动态宏则返回默认条件,报表就会根据设置的默认条件来查询。
第一步:制作参数报表
新建一个空白报表,另存为”参数查询.raq”,新建一个参数,命名为”area”,用于接收参数模板中传递过来的货主地区。新建一个数据集,sql语句为:
“SELECT 订单.订单ID,订单.货主国家,订单.货主地区,订单.货主地址 FROM 订单 WHERE 订单.货主地区 =? or ? is null”,
给数据集增加两个参数”area”。单元格中输入的内容如下:
A1: 订单ID
B1: 货主国家
C1: 货主地区
D1: 货主地址
A2: =ds1.Select(订单ID)
B2: =ds1.货主国家
C2: =ds1.货主地区
D2: =ds1.货主地址
如下图,把不需要的单元格删除掉
新建一个空白报表,另存为”参数查询_arg.raq”,把报表设置为填报表,A1单元格输入的内容:”请选择货主地区:”。给B1单元格设置下拉列表框,如下图:
选中B1单元格,设置变量名为”area”
第二步:判断参数模板中是否选择了条件并点击”查询”
在设计器中打开” 参数查询_arg.raq”,给报表追加一列C列,选中C1单元格,设置它的变量名为”selectFlag”,如下图:
设置C1单元格的值为”1″,如下图:
然后把C列的宽度设置为1,把C列隐藏起来,注意这里不是设置列的可视属性。
第三步:设置动态宏,根据判断结果返回不同的查询条件
在设计器中打开报表”参数查询.raq”,增加一个参数”selectFlag”:
增加动态宏”ifSelect”,如下图:
动态宏的意思是如果用户点击了”查询”按钮,就返回空,宏不起作用;没有点击”查询”按钮,就返回宏里设置的默认查询条件进行查询,例子中返回的是:”1=2″,意思就是不查询任何数据(用户可以根据自己的需要在宏里设置不同的查询条件)。
第四步:浏览报表
在IE中浏览报表”参数查询.raq”
从上图中可以看出没有查出任何数据。
对比以上两种方法发现,第一种方法比较适合参数设置默认条件,第二种方法比较适合默认不查出任何数据。以后遇到类似的需求就可以用上面的方法实现了。