欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何在uReport2的SQL语句中添加查询参数并且访问报表页面

程序员文章站 2022-06-24 16:48:30
相信看过第二章link《uReport2报表工具的基础使用及注意事项》的读者们应该对uReport2的基础操作会有所了解的,本章就开始讲述一下,如何在uReport2的SQL语句中添加查询参数并且访问报表页面。(一)添加查询参数因为uReport2的编写入口支持表达式解析,不难想到可以用${}的方式进行编写。当然,此处需要借助param(...

       相信看过第二章link《uReport2报表工具的基础使用及注意事项》的读者们应该对uReport2的基础操作会有所了解的,本章就开始讲述一下,如何在uReport2的SQL语句中添加查询参数并且访问报表页面。

(一)添加查询参数

       因为uReport2的编写入口支持表达式解析,不难想到可以用${}的方式进行编写。当然,此处需要借助param()函数来获取用户提交的参数,具体如下所示:
如何在uReport2的SQL语句中添加查询参数并且访问报表页面

(二)不确定传参方式

当我们直接预览数据时,因为没有传参,此处会根据我们参数设置里面的字段默认值传值过去进行查询。
如何在uReport2的SQL语句中添加查询参数并且访问报表页面
       假如我们不清楚当前参数是否需要传入,此时需要把sql转化为表达式的方式来编写,并且使用三目运算来实现,此时就不需要设置下列的参数列表,具体代码如下:

${
  "select * from sys_role where 1=1"+
	(param("id")!=null && param("id")!="" ? " and id = \'"+param("id")+"\'":" ")
	#多个参数    直接添加在下方即可
	#(param("name")!=null && param("name")!="" ? " and name = \'"+param("name")+"\'":" ")
}

       注:此处编写时需要注意空格的使用,比如and前面不能省略空格,否则Sql语句将解析为:

select * from sys_role where 1=1and id = '1'

       则在运行时就会报错,具体问题可以通过查看控制台打印出来的SQL语句就能更快查找问题。
具体效果如下:
如何在uReport2的SQL语句中添加查询参数并且访问报表页面
       此时浏览数据就能查询出全部数据,因为现在的预览相当于没有传入任何参数。
如何在uReport2的SQL语句中添加查询参数并且访问报表页面

(三)如何传参及访问报表页面

       那我们要怎么去测试传入参数访问报表页面呢?还记得我们打开预览的报表文件时默认访问的链接是http://localhost:8080/ureport/preview?_u=p,因此我们需要修改当前链接的参数,如:http://localhost:8080/ureport/preview?_u=file:roleSelect1.ureport.xml,这里的file对应的就是我们所保存的报表文件,它是以xml文件的形式保存到webapp/WEB-INF/ureportfiles下的。
最后我们只需要在这个链接中添加参数即可,如下所示:

#不传入参数
http://localhost:8080/ureport/preview?_u=file:roleSelect1.ureport.xml
#传入参数
http://localhost:8080/ureport/preview?_u=file:roleSelect1.ureport.xml&id=1

       具体效果如下:
如何在uReport2的SQL语句中添加查询参数并且访问报表页面
如何在uReport2的SQL语句中添加查询参数并且访问报表页面
       如果需要设置访问报表居中,可以进行如下操作:
如何在uReport2的SQL语句中添加查询参数并且访问报表页面
如何在uReport2的SQL语句中添加查询参数并且访问报表页面
       设置完成,点击保存之后,再访问报表,效果如下:
如何在uReport2的SQL语句中添加查询参数并且访问报表页面
完成!
       如有遇到什么问题,欢迎各位读者在评论区下留言,如果错误之处,请各位大佬多多指出,谢谢!

本文地址:https://blog.csdn.net/xuguoxing123/article/details/110953096

相关标签: SpringBoot ureport2