报表工具怎么做模糊查询

【摘要】

        web 端展现报表,当数据量非常多的时候,我们常常需要模糊查询去动态过滤数据,如何快速实现模糊查询呢?去乾学院看个究竟:报表工具怎么做模糊查询!

在数据查询系统中,我们常常会遇到精准查询和模糊查询。我们知道,对于关系数据库,使用精准查询可以直接在 sql 里面使用“where 字段 = 参数值”来过滤对应的数据,而要实现模糊查询,我们使用的就是 like 的形式。那么,在报表里面该如何使用 like 方式实现模糊查询来过滤数据呢?

下面,我们结合润乾报表自带的 hsql 数据库中的客户表,来做一个模糊查询的示例。

例如:在下拉框中通过模糊查询显示所有姓名里面带有“王”字的联系人,当用户选择后进行精准查询。并且结果列表在第一次展现全部数据。如下图所示:

imagepng

这是一种常见而且体验不错的报表需求,我们该如何实现呢?

操作非常简单的哦,下面我们一起来动手操作一下吧 ~

第一步:连接数据源

先连接我们自带的 demo 数据库,别忘了先启动示例数据库哦 ~

第二步:新建数据集

1)Sql 语法为:SELECT * FROM 客户 WHERE 客户. 联系人姓名  like ?  or ? is  null(因为我们想第一次查询前在结果列表中展现全部数据,所以我们需要写上 or ? is null ,也就是参数为空的时候查询全部数据。)

2)设置数据集的参数。格式为 ”%”+ 参数名称 +”%”。 (注意:我们对同一个字段“联系人姓名”写了两个问号,所以需要写两个相同的参数。)

如下图所示:

imagepng

imagepng

第三步:设计报表并在报表—参数增加跟数据集名称相同的参数:

imagepng

第四步:保存报表,并将报表名称设置为 test.rpx

第五步:建立参数模板

1) 新建数据集,只取出来客户表中的联系人姓名字段即可。

imagepng

2) 为 B1 单元格设置单元格编辑风格和 web 变量名称

imagepng

第六步:保存参数模板,并设置报表名称为   test_arg.rpx

(注意:参数模板的名称要跟主报表的名称一致,并且加上 _arg 。然后将参数模板保存在和主报表相同的目录下面)

第七步:启动 tomcat,发布报表。

展现效果为:

imagepng

试验一下,我们在单元格输入一个“王”字,可以看到,下拉框中会对应显示所有姓名中包含“王”的联系人。

直接点击查询展现效果为:

imagepng

或者是输入“王”之后,选择下拉清单里面的任何一个联系人,点击查询即可过滤数据。

imagepng

以上就是我们在报表中模糊查询的使用方法,有没有很简单?有需求的小伙伴们赶紧试试看吧 ~~

嘘 ~~ 最后告诉大家一个小秘密,由于数据库驱动的问题,如果要查询的联系人姓名字段中有 null 数据,在第一次查询全部数据时可能会查不到全部的数据,也就是为空的数据无法显示。这时,我们需要将模糊查询的数据集的参数改为如下格式:(第二个参数不用百分号拼接的方式去写,其他不需要改动)。

imagepng

更多参数类问题请查看:参数问题分类导航