报表工具怎么做模糊查询

简介: 模糊查询

在数据查询系统中,我们常常会遇到精准查询和模糊查询。我们知道,对于关系数据库,使用精准查询可以直接在 sql 里面使用“where 字段 = 参数值”来过滤对应的数据,而要实现模糊查询,我们使用的就是 like 的形式。那么,在报表里面该如何使用 like 方式实现模糊查询来过滤数据呢?
下面,我们结合润乾报表自带的 hsql 数据库中的客户表,来做一个模糊查询的示例。
例如:在下拉框中通过模糊查询显示所有姓名里面带有“王”字的联系人,当用户选择后进行精准查询。并且结果列表在第一次展现全部数据。如下图所示:
1

这是一种常见而且体验不错的报表需求,我们该如何实现呢?
操作非常简单的哦,下面我们一起来动手操作一下吧 ~
第一步:连接数据源
先连接我们自带的 demo 数据库,别忘了先启动示例数据库哦 ~
第二步:新建数据集
1)Sql 语法为:SELECT * FROM 客户 WHERE 客户. 联系人姓名 like ? or ? is null(因为我们想第一次查询前在结果列表中展现全部数据,所以我们需要写上 or ? is null ,也就是参数为空的时候查询全部数据。)
2)设置数据集的参数。格式为 ”%”+ 参数名称 +”%”。 (注意:我们对同一个字段“联系人姓名”写了两个问号,所以需要写两个相同的参数。)
如下图所示:
2
3

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

第四步:保存报表,并将报表名称设置为 test.rpx
第五步:建立参数模板
1) 新建数据集,只取出来客户表中的联系人姓名字段即可。
5

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

第六步:保存参数模板,并设置报表名称为 test_arg.rpx
(注意:参数模板的名称要跟主报表的名称一致,并且加上 _arg 。然后将参数模板保存在和主报表相同的目录下面)
第七步:启动 tomcat,发布报表。
展现效果为:
7

试验一下,我们在单元格输入一个“王”字,可以看到,下拉框中会对应显示所有姓名中包含“王”的联系人。
直接点击查询展现效果为:
8

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

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

作者:Spoiled
链接:http://c.raqsoft.com.cn/article/1534058713036?r=IBelieve
来源:乾学院
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
easyexcel Java Maven
百万数据excel导出功能怎么做
百万数据excel导出功能怎么做
427 0
|
1月前
|
存储 Oracle 关系型数据库
索引在手,查询无忧:MySQL索引简介
MySQL 是一款广泛使用的关系型数据库管理系统,在2024年5月的DB-Engines排名中得分1084,仅次于Oracle。本文介绍MySQL索引的工作原理和类型,包括B+Tree、Hash、Full-text索引,以及主键、唯一、普通索引等,帮助开发者优化查询性能。索引类似于图书馆的分类系统,能快速定位数据行,极大提高检索效率。
61 8
|
2月前
|
存储 缓存 NoSQL
京东面试:亿级黑名单 如何设计?亿级查重 呢?(答案含:布隆过滤器、布谷鸟过滤器)
尼恩,40岁的老架构师,近期在读者交流群中分享了几个大厂面试题及其解决方案。这些问题包括亿级数据查重、黑名单存储、电话号码判断、安全网址判断等。尼恩给出了三种解决方案:使用BitMap位图、BloomFilter布隆过滤器和CuckooFilter布谷鸟过滤器。这些方法不仅高效,还能显著提升面试表现。尼恩还建议大家系统化学习,刷题《尼恩Java面试宝典PDF》,并提供简历修改和面试辅导,帮助大家实现“offer自由”。更多技术资料和PDF可在公众号【技术自由圈】获取。
|
6月前
|
存储 C语言 索引
【实战编程】学生信息管理系统:一键实现数据插入、智能排序、精准查询与成绩统计(附完整源码,即学即用!)
结构体数组是C语言中一种复合数据类型,它结合了结构体的灵活性和数组的有序集合特性,允许你定义一组具有相同结构的数据项。结构体定义了一组不同数据类型的变量集合,而结构体数组则是这种结构的连续内存块,每个元素都是该结构类型的实例。这种方式特别适合管理具有相似属性的对象集合,如学生信息、员工记录等。
|
8月前
|
关系型数据库 MySQL
Mysql基础第二十天,组合查询
Mysql基础第二十天,组合查询
46 0
Mysql基础第二十天,组合查询
|
SQL 移动开发 BI
【SQL开发实战技巧】系列(二十二):数仓报表场景☞ 从分析函数效率一定快吗聊一聊结果集分页和隔行抽样实现方式
怎样对SQL查询结果集分页比较好、平时你用分析函数优化传统查询,所以你会不会认为分析函数一定比传统查询效率高?一个实验告诉你答案、我想对数据进行隔行抽样应该怎么实现?【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。分析查询的一个小建议,可能大家平时为了方便,用row_number做分页的比较多,但是在有些场景,这个效率真的挺低。
【SQL开发实战技巧】系列(二十二):数仓报表场景☞ 从分析函数效率一定快吗聊一聊结果集分页和隔行抽样实现方式
【SQL开发实战技巧】系列(二十五):数仓报表场景☞结果集中的重复数据只显示一次以及计算部门薪资差异高效的写法以及如何对数据进行快速分组
本篇文章讲解的主要内容是:***如何使用lag函数让结果集重复数据只显示一次、用行转列pivot写法优化部门之间计算工资差异类似需求、如何通过ceil函数对已有数据进行分组打印、放假安排团队分组值班,如何通过ntile()over(order by )快速进行人员分组***
【SQL开发实战技巧】系列(二十五):数仓报表场景☞结果集中的重复数据只显示一次以及计算部门薪资差异高效的写法以及如何对数据进行快速分组
|
SQL Oracle 关系型数据库
【SQL开发实战技巧】系列(二十四):数仓报表场景☞通过执行计划详解”行转列”,”列转行”是如何实现的
本篇文章讲解的主要内容是:***目前Oracle支持的行列互换有两种方式:case when、pivot\unpivot,我将通过几个案例来给大家详解如何通过这两种方式实现“行转列”,“列转行”的需求,并通过执行计划看case when、pivot\unpivot二者的底层逻辑关系以及效率上的影响。***
【SQL开发实战技巧】系列(二十四):数仓报表场景☞通过执行计划详解”行转列”,”列转行”是如何实现的
|
SQL 缓存 关系型数据库
2.5W字详解 | 专门为 “数据分析师” 写的 “MySQL优化” 问题,真的好懂多了!(七)
2.5W字详解 | 专门为 “数据分析师” 写的 “MySQL优化” 问题,真的好懂多了!(七)
2.5W字详解 | 专门为 “数据分析师” 写的 “MySQL优化” 问题,真的好懂多了!(七)
|
SQL 关系型数据库 MySQL
2.5W字详解 | 专门为 “数据分析师” 写的 “MySQL优化” 问题,真的好懂多了!(二)
2.5W字详解 | 专门为 “数据分析师” 写的 “MySQL优化” 问题,真的好懂多了!(二)
2.5W字详解 | 专门为 “数据分析师” 写的 “MySQL优化” 问题,真的好懂多了!(二)