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/niceyoo/springboot-demo
2、基于已下载的springBoot工程,修改index.html文件内的外部js文件路径,将../修改为../../(原始路径不正确);
4.2 添加依赖1、在springBoot工程的pom文件dependencies中添加依赖;
com.bstek.ureport ureport2-console 2.3.0-SNAPSHOTcom.bstek.ureport ureport2-core 2.3.0-SNAPSHOT org.slf4j slf4j-api 1.7.7
2、在springBoot工程的pom文件添加repositories;
snapshots https://oss.sonatype.org/content/repositories/snapshots/ sonatype https://oss.sonatype.org/content/groups/public/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:companyideaIdeaProjectsspringboot-demo-mastersrcmain:为当前我工程的路径E:companyideaIdeaProjectsspringboot-demo-mastersrcmainwebappWEB-INFweb.xml(第5步)E:companyideaIdeaProjectsspringboot-demo-mastersrcmainwebapp (第7步)2、基于步骤6新增的web.xml文件,添加listener及context-param、servlet、servlet-mapping;
org.springframework.web.context.ContextLoaderListenercontextConfigLocation classpath:ureport-console-context.xml
ureportServlet com.bstek.ureport.console.UReportServlet
ureportServlet /ureport/*
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;
#serverserver.port=18090server.tomcat.uri-encoding=utf-8#MySQL(当前仅为示例)spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/jeesite?characterEncoding=utf8spring.datasource.username=rootspring.datasource.password=123456
4.5 启动工程1、当上述均配置完成,进入到启动文件Entry,右键点击【Run Entry】启动工程;
4.6 访问工程工程成功启动,访问地址为: http://localhost:18090/ureport/designer
五、报表基础配置5.1 工具栏1)顶栏:针对报表:报表预览、保存报表、打开报表、导入excel、报表配置、查询表单设计器;
针对单元格:重做(下一步)、撤销(上一步)、合并/拆分单元格、上下对齐、表格有无边框、斜线表头;
针对数据:字体样式、字体大小、是否加粗、斜体、下划线、背景色、字体颜色、图片、二维码、图表
图片:选择左侧单元格,在右侧对应属性区域,输入图片路径,默认支持以classpath:开头位于classpath下的图片文件,或以/开头位于WEB应用根目录下或某目录下的图片文件;比如"/WEB-INF/static/images/test.jpg"2)左栏:单元格栏,可针对指定单元格进行单元格样式及数据的设置,鼠标右键可设置单元格;
标题行:在报表计算后分页时只会出现在第一页第一行的行,如果定义了多个行为标题行类型,那么这些行将在报表运行后分页输出时第一页最前面插入标题行。需要注意的是,我们在报表中可以将位于任意位置的行定义成标题行,但报表计算分页输出时,总会将这些定义为标题行的行放在报表的第一页最前端显示;重复表头:与标题行不同的是,定义为重复表头行的行,在报表计算分页输出时会将定义成重复表头行的行放在每一页的前端进行显示。如果当前报表中定义的有标题行,那么对于第一页,标题前将位于最上面,其下才是重复表头行定义的行;
重复表尾:与重复表头行类型,它也会在报表计算分页输出时放在每一页中显示,只是它会在每一页的最下端显示;
总结行:与标题行对应,总结行会出现在报表计算后分页输出时最后一页的最下端显示。如果当前报表中定义了重复表尾行,那么在报表计算后分页输出的最后一页中总结后将位于重复表尾行下方显示。
3)右栏:单元格属性栏及数据源配置,可针对(2)中指定单元格,进行