一、报表简介
UReport2是一款基于架构在Spring之上纯Java的高性能报表引擎,通过迭代单元格可以实现任意复杂的中国式报表。 在UReport2中,提供了全新的基于网页的报表设计器,可以在Chrome、Firefox 等各种主流浏览器运行 (不支持IE)。 使用UReport2,打开浏览器即可完成各种复杂报表的设计制作。
二、主体功能
-
UReport2支持创建数据源、添加数据集,并对数据集进行函数、表达式处理;(参考【数据处理】)
-
UReport2支持对数据集形成可视化报表,包括饼状图、柱状图、曲线图等等(参考【图表展示】)
三、优缺点阐述
优点:
(1)开源、免费,集成即可使用;
(2)轻量级、易集成,工程中添加依赖即可进行集成使用;
(3)支持多函数处理,包括常用函数(sum、count、max、min、avg)、数学函数、字符串函数、日期函数等等;
(4)支持多种图表展示,包括饼状图、柱状图、曲线图、圆环图、雷达图、散点图等等;
缺点:
(1)工程在使用过程中经常出现空指针或者其他报错;
(2)UReport2部分功能不可用,包括导出及多条件表达式SQL查询等;
(3)支持数据源类型少,当前支持:mysql、SQLserver、oracle、db2等
四、集成及配置
UReport2的设计器是基于网页的,配置好一个项目,也就完成了报表设计器的安装。因为 UReport2是一款纯Java的报表引擎,所以它支持现在流行的所有类型J2EE项目,下面将具体介绍基于maven的SpringBoot工程如何集成UReport2 ,并基于当前工程进行一系列的数据处理及报表展示。
4.1 创建springboot工程
1、如果当前本地无springboot工程,提供下载地址:
https://github.com/Sonlan/springboot-demo
2、基于已下载的springBoot工程,修改index.html文件内的外部js文件路径,将../修改为../../(原始路径不正确);
4.2 添加依赖
1、在springBoot工程的pom文件dependencies中添加依赖;
<dependency>
<groupId>com.bstek.ureport</groupId>
<artifactId>ureport2-console</artifactId>
<version>2.3.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.bstek.ureport</groupId>
<artifactId>ureport2-core</artifactId>
<version>2.3.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
2、在springBoot工程的pom文件添加repositories;
<repositories>
<repository>
<id>snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
</repository>
</repositories>
3、基于当前工程,创建webapp/WEB-INF目录,工程【main】目录右键【Directory】》输入【webapp】,基于webapp,继续新建directory》【WEB-INF】;
4.3 创建web.xml文件并配置
1、基于已新建【webapp】》【WEB-INF】目录,添加web.xml文件,点击【file】》【Project Structure】》【Facets】》【web】,新增web.xml文件及web resources directory;
说明:
E:\company\idea\IdeaProjects\springboot-demo-master\src\main:为当前我工程的路径
E:\company\idea\IdeaProjects\springboot-demo-master\src\main\webapp\WEB-INF\web.xml(第5步)
E:\company\idea\IdeaProjects\springboot-demo-master\src\main\webapp (第7步)
2、基于步骤6新增的web.xml文件,添加listener及context-param、servlet、servlet-mapping;
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:ureport-console-context.xml</param-value>
</context-param>
<servlet>
<servlet-name>ureportServlet</servlet-name>
<servlet-class>com.bstek.ureport.console.UReportServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ureportServlet</servlet-name>
<url-pattern>/ureport/*</url-pattern>
</servlet-mapping>
4.4 创建UreportConfig 文件
1、基于工程启动文件的父节点,创建子文件夹ureport》config,并创建UreportConfig 文件;
package com.song.configuration.ureport.config;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import com.bstek.ureport.console.UReportServlet;
/**
* Ureport2 配置类
* @author qiaolin
* @version 2018年5月9日
*/
@ImportResource("classpath:ureport-console-context.xml")
@EnableAutoConfiguration
@Configuration
@ComponentScan(basePackages = "com.song.configuration")
public class UreportConfig {
@Bean
public ServletRegistrationBean buildUreportServlet(){
return new ServletRegistrationBean(new UReportServlet(), "/ureport/*");
}
}
2、在配置途中,当缺少包时,需要根据提示自行添加、下载依赖,配置完成,点击resources目录,修改application.properties文件中关于mysql的配置,换成可用库(因为当前springboot工程是以一张user表为例的,所以当前连接的数据库中需要包含user表,囊括id、name、password字段),工程启动的端口号,默认是8080,此处已修改为18090;
#server
server.port=18090
server.tomcat.uri-encoding=utf-8
#MySQL(当前仅为示例)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/jeesite?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
4.5 启动工程
1、当上述均配置完成,进入到启动文件Entry,右键点击【Run Entry】启动工程;
4.6 访问工程
工程成功启动,访问地址为:
http://localhost:18090/ureport/designer