报表工具怎么做模糊查询

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

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

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

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

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

第一步:连接数据源

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

第二步:新建数据集

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

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

如下图所示:

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

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

第五步:建立参数模板

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

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

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

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

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

展现效果为:

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

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

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

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

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

原文地址:http://blog.51cto.com/13982426/2298475

时间: 2024-10-08 19:11:53

报表工具怎么做模糊查询的相关文章

利用DetachedCriteria实现模糊查询和分页

  分类: Java-Developing 前段时间在做模糊查询,并利用数据库分页,DAO用hibernate实现,刚开始的时候 根据业务层的数据,拼hql语句进行查询,且不说要进行一些if判断,单从结构上来说, 底层的数据访问层依赖于业务层或者表现层了. 比如说,我想查询姓王的员工,年龄大于30岁的,在DAO显然要name like '%王' and age >30,如果业务发生变化,查询与王**姓名相同,年龄等于30的,那就改hql语句吧, name ='王**' and age =30,数

T-SQL---多值模糊查询的处理

多值模糊查询的处理 所谓多值模糊查询,就是应用程序中传递过来多个参数,对这些参数做拆分,拆分之后,对拆分结果的key值分别做模糊查询处理 对于精确匹配时,不管是单个Key值还是多个Key值,都很容易处理,备选方案也很多 对于模糊查询,单个key值也很容易,也就是 --where name like '%parameter%'(不要告诉我全模糊效率低之类的,我这里不是做性能对比的) 但是对于多个Key值的模糊处理,就不是太直接了,比如name字段,输入'三,四,五',要求分别按照三,四,五三个字符

SQL模糊查询碰到空值怎么办?

作者:iamlaosong SQL查询语句用%来做模糊查询,程序中一般要求用户输入部分信息,根据这个信息进行模糊查询.例如用户输入340104,下面这条语句就是查询昨天客户代码为340104开头的所有邮件信息: select * from tb_evt_mail_clct t where t.clct_date = trunc(sysdate - 1) and t.sender_cust_code like '340104%' 当用户什么都不输入需要查询昨天所有邮件信息时,下面的语句并不能查询到

JavaScript根据Json数据来做的模糊查询功能

类似于百度搜索框的模糊查找功能 需要有有已知数据,实现搜索框输入字符,然后Js进行匹配,然后可以通过鼠标点击显示的内容,把内容显示在搜索框中 当然了,正则只是很简单的字符匹配,不具备多么复杂的判断 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>模糊查询</title> <style> *{

MongoDB模糊查询 工具

{"Exception":{$regex:"定时发送邮件"}}    //模糊查询条件 {"DateTime":-1}         //排序降序 原文地址:https://www.cnblogs.com/chxl800/p/10439096.html

蒋步星:报表工具的“后”路

报表工具很可能是企业级通用软件领域中仅有的国产软件品质远远超过国外同行的产品了.以润乾为先行者的国内厂商,在十多年的竞争中靠实力击败了国外产品.除了少量开源产品因价格优势还有较多用户外,其它国外产品主要就是些多年前的老用户了. 中国报表需求确实更复杂,无论格式和计算都繁琐得多,传统报表模型难以处理.润乾发明的非线性报表模型能够较好地解决这些问题,国内重要厂商目前都采用了该模型,而国外厂商则继续使用传统模型,产品本身品质要差很多;另外,近年来几个重要的国外厂商都发生了并购,报表工具并非收购方的主营

企业选择报表工具的必看点

我们都做过无数的报表,但却没有真正的了解过报表工具,也不知道怎么样的报表工具才算是好用的.可以真正解决我们需求的.用报表工具做数据,无疑就是想要让数据彻底的得到分析,让数据可视化.达到数据可视化可以让我们的决策者更好地做出利于企业发展的决策.原文出处:http://www.powerbi.com.cn/page103?article_id=253 现在传统报表的占比在各个行业内都在下降,越来越多的用户不太关注报表格式的严格性,而更在意数据,越是信息化程度高的行业越是如此.传统报表需求会有,但是会

Mybatis框架的模糊查询(多种写法)、删除、添加

学习Mybatis这么多天,那么我给大家分享一下我的学习成果.从最基础的开始配置. 一.创建一个web项目,看一下项目架构 二.说道项目就会想到需要什么jar 三.就是准备大配置链接Orcl数据库 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "htt

使用Xpath对XML进行模糊查询

如果要对XML文件进行模糊查找的话是一个比较麻烦的事情,Xpath表达式中没有像文件系统中的“*”或"?" 或者有像SQL表达式中的"%",这样的模糊查找的通配符.但是还好,在Xpath的函数中提供了像contains和match这样的函数. contains是一个字符串查找函数 语法是:fn:contains(string1,string2),表示如果 string1 包含 string2,则返回 true,否则返回 false. 例如:contains('XML