FineReport: 参数为空选出全部值(按条件查询,空条件时直接过滤,不进行查询。。)
在Java报表软件FineReport中,选择特定的参数(如下图中的姓名、身份证号等)后,会返回我们要查询的数据,然而假如没有输入参数值,我们却仍需要返回数据时该怎样处理呢?应该过滤掉这个条件,不按这个条件查询。
1.定义数据源
新建名为ds1的数据库查询,SQL语句:
SELECT * FROM SHAREIDEADBA."RINCERETBCHILDREN" where 1=1 ${if(len(txtname) == 0,"","and childname = '" + txtname + "'")} ${if(len(txtcard) == 0,"","and idcard like '%" + txtcard + "%'")}
解释:
SHAREIDEADBA."RINCERETBCHILDREN"为表名
where 1=1表示条件永真,防止没有之后的参数条件时,where多出而导致出错;
txtname txtcard分别代表姓名输入框、身份证号模糊查询输入框的控件名属性值,如下图所示
len(txtname) == 0表示参数为空;
${if(len(txtcard) == 0,"","and idcard like '%" + txtcard + "%'")}表示当参数txtcard为空时,就返回空字符串,否则返回查询条件
idcard like '%" + txtcard + "%'") 。。
2.设计模板(省略了...)
3.结果:
一、不输入查询条件时,查看所有信息
二、按姓名查询
三、按姓名和身份证号查询
ok了,可浪费了我整整一个早上的时间才做出来。。。。
逃避不一定躲得过,面对不一定最难过
本文作者:Yzl1990
本文链接:https://www.cnblogs.com/yangzhenlong/p/3227461.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
标签:
,
,
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步