java报表查询 跟 语句查询区别_参数报表实现默认查询的两种方法

参数报表功能比较强大,可以根据自己的需求把需要的数据查询出来,既然用到了查询就少不了需要根据默认条件来查询。因为很多时候我们需要不输入条件就可以看到报表。本文就来介绍两种实现默认查询的方法。

第一种方法:参数编辑框”值表达式”中设置默认值

此方法常用于以某个固定值默认查询

这个方法很简单,直接在报表参数编辑里设置就可以了。

以任意带参数的报表为例在参数报表中设置默认值,如下图给参数”area”设置默认值为”华北”

xn-1-1p6ar3p7nj86itkeyoan7ld0nlirukhnskvq3cjqjv0a523t.png

浏览报表的时候就会查询出货主地区为华北的数据。

第二种方法:利用动态宏设置默认查询条件

此方法常用于默认不查询任何数据

大致思路: 通过动态宏返回不同的查询条件进行查询,如果选择了查询条件并点击”查询”按钮进行查询,动态宏就返回空值,不影响报表查询,报表根据选择的查询条件来查询;如果没有选择查询条件也没有点击 “查询”按钮,动态宏则返回默认条件,报表就会根据设置的默认条件来查询。

第一步:制作参数报表

新建一个空白报表,另存为”参数查询.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.货主地址

如下图,把不需要的单元格删除掉

xn-2-1p6ar3p7nj86itkeyoan7ld0nlirukhnskvq3cjqjv0a523t.png

新建一个空白报表,另存为”参数查询_arg.raq”,把报表设置为填报表,A1单元格输入的内容:”请选择货主地区:”。给B1单元格设置下拉列表框,如下图:

xn-3-1p6ar3p7nj86itkeyoan7ld0nlirukhnskvq3cjqjv0a523t.png

选中B1单元格,设置变量名为”area”

xn-4-1p6ar3p7nj86itkeyoan7ld0nlirukhnskvq3cjqjv0a523t.png

第二步:判断参数模板中是否选择了条件并点击”查询”

在设计器中打开” 参数查询_arg.raq”,给报表追加一列C列,选中C1单元格,设置它的变量名为”selectFlag”,如下图:

xn-5-1p6ar3p7nj86itkeyoan7ld0nlirukhnskvq3cjqjv0a523t.png

设置C1单元格的值为”1″,如下图:

xn-6-1p6ar3p7nj86itkeyoan7ld0nlirukhnskvq3cjqjv0a523t.png

然后把C列的宽度设置为1,把C列隐藏起来,注意这里不是设置列的可视属性。

第三步:设置动态宏,根据判断结果返回不同的查询条件

在设计器中打开报表”参数查询.raq”,增加一个参数”selectFlag”:

xn-7-1p6ar3p7nj86itkeyoan7ld0nlirukhnskvq3cjqjv0a523t.png

增加动态宏”ifSelect”,如下图:

xn-8-1p6ar3p7nj86itkeyoan7ld0nlirukhnskvq3cjqjv0a523t.png

动态宏的意思是如果用户点击了”查询”按钮,就返回空,宏不起作用;没有点击”查询”按钮,就返回宏里设置的默认查询条件进行查询,例子中返回的是:”1=2″,意思就是不查询任何数据(用户可以根据自己的需要在宏里设置不同的查询条件)。

xn-9-1p6ar3p7nj86itkeyoan7ld0nlirukhnskvq3cjqjv0a523t.png

第四步:浏览报表

在IE中浏览报表”参数查询.raq”

xn-10-xx2c54tp1knsk80e1qak0nhzoqlsj5ho6kpq5c6ekn2au17u.png

从上图中可以看出没有查出任何数据。

对比以上两种方法发现,第一种方法比较适合参数设置默认条件,第二种方法比较适合默认不查出任何数据。以后遇到类似的需求就可以用上面的方法实现了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值