1.产品介绍
UReport2是一款纯Java的高性能报表引擎。 其优点在于:是开源的,基于Apache-2.0开源协议;其次,在项目中直接集成网页端报表设计器,灵活、方便、易维护和管理;另外,可以实现任意复杂的中国式报表。
本文档介绍Spring Boot集成UReport2报表引擎方案,旨在详解从0到1的具体实现步骤,为后续高阶方案提供知识基础及实践经验。
2.工程搭建
2.1 新建Maven项目
推荐使用Spring Initializr创建,能自动添加很多依赖,如下所示:
选择Spring Boot版本,并按需添加依赖,这里暂不需要依赖,可不选,如下所示:
2.2 POM文件修改
2.2.1 Repository
需要注意的是,在 http://search.maven.org/ 上我们只能查找到最新的release版本,如果您需要最新的snapshot,那么可以到 https://oss.sonatype.org/ 上查找。
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
</repository>
2.2.2 dependency
在POM中添加UReport2和Spring Boot依赖,此处依赖UReport2 2.2.9版本,Spring Boot 2.0.6 RELEASE版本。如下所示:
<dependency>
<groupId>com.bstek.ureport</groupId>
<artifactId>ureport2-console</artifactId>
<version>2.2.9</version>
</dependency>
2.3 注册ServletRegistrationBean实例
Spring Boot提供两种Servlet整合方式:注解扫描方式和组件注册方式,此处组件注册方式更加适用。
首先,注册ServletRegistrationBean实例,并将UReportServlet实例作为构造参数传入ServletRegistrationBean实例,然后为ServletRegistrationBean实例增加Url映射。如下所示:
@Bean
public ServletRegistrationBean reportServlet(){
ServletRegistrationBean bean = new ServletRegistrationBean(new UReportServlet());
bean.addUrlMappings("/ureport/*");
return bean;
}
注意:值为“/ureport/*”的url-pattern是一定不能变的,否则系统将无法运行。
2.4 设置Properties参数
2.4.1 添加classpath
@ImportResource("classpath:ureport-console-context.xml")
2.4.2 设置Property
package com.example.demo;
import com.bstek.ureport.UReportPropertyPlaceholderConfigurer;
import java.util.Properties;
/**
* @author Allen
* @date 2021/08/09
* <p>
* 重写默认的 PropertyPlaceholder
*/
public class UReportPropertyPlaceholderConfigurerPlus extends UReportPropertyPlaceholderConfigurer {
public UReportPropertyPlaceholderConfigurerPlus() {
Properties properties = new Properties();
properties.setProperty("ureport.debug", "false");
properties.setProperty("ureport.fileStoreDir", "F:/UReport");
properties.setProperty("ureport.disableHttpSessionReportCache", "false");
this.setProperties(properties);
}
}
其中ureport.fileStoreDir为报表存储路径。
默认报表存储目录
如果采用tomcat运行项目,那么在WEB-INF目录下就没有一个名为“ureportfiles”目录,原因是在IEDA中运行tomcat,tomcat需要创建一个临时的工作目录(该目录一般位于workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\下),
所以采用tomcat运行项目,则需要到这个临时的工作目录下找到对应的项目,再到这个项目的WEB-INF目录下找到对应的“ureportfiles”目录。
2.4.3 增强默认Ureport配置
@Bean
public UReportPropertyPlaceholderConfigurer uReportPropertyPlaceholderConfigurerPlus() {
return new UReportPropertyPlaceholderConfigurerPlus();
}
2.5 项目启动
至此,我们已经搭建完成Spring Boot集成UReport2报表引擎工作,编译运行项目,在浏览器中访问URL,就可以看到UReport2的报表设计器界面
项目启动,本地访问路径:http://localhost:8080/ureport/designer###
3.属性设置
3.1 数据源配置
打开UReport2的报表设计器,可以看到UReport2提供了三种类型的报表数据源,如下所示:
三种类型的数据源分别是直接连接数据库,Spring Bean以及通过实现com.bstek.ureport.definition.datasource.BuildinDatasource接口提供的内置数据源。
本文档重点介绍直接连接数据库,就是在项目的classpath中添加好相应数据库的驱动Jar包后,在弹出的窗口中配置数据源连接信息即可
注意驱动名称选择com.mysql.cj.jdbc.Driver或者com.mysql.jdbc.Driver
3.2 添加数据集
3.2.1 选择配置好的数据源,添加数据集
3.2.2 设置SQL
3.2.3 设置参数
上述SQL中,有参数:del_flag,需要设置类型,
预览数据
3.2 表格值设置
3.2.1 文本类型
选中单元格,设置属性
3.2.2 数据集类型
4.报表查验
4.1 预览
4.2 保存
4.2.1 默认保存路径
默认orkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\下
4.2.2 指定保存路径
参数设置2.4.2 ureport.fileStoreDir 设置对应值,如下所示
properties.setProperty("ureport.fileStoreDir", "F:/UReport");