ureport2报表详细使⽤
⼀、报表简介
UReport2是⼀款基于架构在Spring之上纯Java的⾼性能报表引擎,通过迭代单元格可以实现任意复杂的中国式报表。在UReport2中,提供了全新的基于⽹页的报表设计器,可以在Chrome、Firefox 等各种主流浏览器运⾏(不⽀持IE)。使⽤UReport2,打开浏览器即可完成各种复杂报表的设计制作。
⼆、主体功能
1. UReport2⽀持创建数据源、添加数据集,并对数据集进⾏函数、表达式处理;(参考【数据处理】)
2. 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⼯程,提供下载地址:
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>/content/repositories/snapshots/</url>
</repository>
<repository>
<id>sonatype</id>
<url>/content/groups/public/</url>
</repository>
</repositories>
3、基于当前⼯程,创建webapp/WEB-INF⽬录,⼯程【main】⽬录右键【Directory】》输⼊【webapp】,基于webapp,继续新建directory》【WEB-INF】;
4.3 创建l⽂件并配置
1、基于已新建【webapp】》【WEB-INF】⽬录,添加l⽂件,点击【file】》【Project Structure】》【Facets】》【web】,新增l⽂件及web resources directory;
说明:
E:\company\idea\IdeaProjects\springboot-demo-master\src\main:为当前我⼯程的路径
E:\company\idea\IdeaProjects\springboot-demo-master\src\main\webapp\l(第5步)
E:\company\idea\IdeaProjects\springboot-demo-master\src\main\webapp (第7步)
2、基于步骤6新增的l⽂件,添加listener及context-param、servlet、servlet-mapping;
<listener>
<listener-class>org.t.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>l</param-value>
</context-param>
<servlet>
<servlet-name>ureportServlet</servlet-name>
<servlet-class>com.sole.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 fig;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import t.annotation.Bean;
import t.annotation.ComponentScan;
import t.annotation.Configuration;
import t.annotation.ImportResource;
import com.sole.UReportServlet;
/**
* Ureport2 配置类
* @author qiaolin
* @version 2018年5⽉9⽇
*/
@ImportResource("l")
@EnableAutoConfiguration
@Configuration
@ComponentScan(basePackages = "figuration")
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
#MySQL(当前仅为⽰例)
spring.datasource.sql.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 访问⼯程
⼯程成功启动,访问地址为:
五、报表基础配置
5.1 ⼯具栏
1)顶栏:针对报表:报表预览、保存报表、打开报表、导⼊excel、报表配置、查询表单设计器;
针对单元格:重做(下⼀步)、撤销(上⼀步)、合并/拆分单元格、上下对齐、表格有⽆边框、斜线表头;
针对数据:字体样式、字体⼤⼩、是否加粗、斜体、下划线、背景⾊、字体颜⾊、图⽚、⼆维码、图表
图⽚:
选择左侧单元格,在右侧对应属性区域,输⼊图⽚路径,默认⽀持以classpath:开头位于classpath下的图⽚⽂件,或以/开头位于WEB应⽤根⽬录下或某⽬录下的图⽚⽂件;
⽐如"/WEB-INF/static/images/test.jpg"
2)左栏:单元格栏,可针对指定单元格进⾏单元格样式及数据的设置,⿏标右键可设置单元格;
标题⾏:
在报表计算后分页时只会出现在第⼀页第⼀⾏的⾏,如果定义了多个⾏为标题⾏类型,那么这些⾏将在报表运⾏后分页输出时第⼀页最前⾯插⼊标题⾏。需要注意的是,我们在报表中可以将位于任意位置的⾏定义成标题⾏,但报表计算分页输出时,总会将这些定义为标
重复表头:
与标题⾏不同的是,定义为重复表头⾏的⾏,在报表计算分页输出时会将定义成重复表头⾏的⾏放在每⼀页的前端进⾏显⽰。如果当前报表中定义的有标题⾏,那么对于第⼀页,标题前将位于最上⾯,其下才是重复表头⾏定义的⾏;
重复表尾:
与重复表头⾏类型,它也会在报表计算分页输出时放在每⼀页中显⽰,只是它会在每⼀页的最下端显⽰;
总结⾏:
与标题⾏对应,总结⾏会出现在报表计算后分页输出时最后⼀页的最下端显⽰。如果当前报表中定义了重复表尾⾏,那么在报表计算后分页输出的最后⼀页中总结后将位于重复表尾⾏下⽅显⽰。
3)右栏:单元格属性栏及数据源配置,可针对(2)中指定单元格,进⾏链接、类型(⽂本、表达式、数据集、图⽚、斜表头、⼆维码、条码、图表)、及对应类型下参数设置;
备注:
A、不同类型单元格,配置参数不⼀致,按界⾯要求输⼊参数即可;
B、链接:为单元格设置链接的后缀,⽐如URL配置为:/user/index,⽬标窗⼝:新窗⼝,那么在【预览报表】时,点击该单元格,将跳转到localhost:18090/user/index界⾯
5.2 报表存储
上述⼯程启动完成后,在springboot-demo-master\src\main\webapp\WEB-INF下⾃动⽣成了⼀个ureportfiles⽂件夹,⽤于存放报表⽂件,这个⽬录⼀般是默认的,当然也可以⽀持修改,此处以默认路径进⾏介绍,如果需要修改,请⾃⾏参考。
设计界⾯,点击保存图标,试保存⼀个报表⽂件,如下图所⽰:
5.3 ⾃定义报表存储器
UReport2默认提供的名为“服务器⽂件系统”的报表存储机制,
可查看源码 com.bstek.port.ReportProvider :,实现了ReportProvider接⼝后,只需要将实现类配置到Spring中,让其成为⼀个标准的Spring Bean,这样UReport2就会检测到它⽽将其加载。ureport2⽀持⾃定义报表存储器,通过实现ReportProvider接⼝开发⼀个新的报表存储器将报表⽂件存储到数据库、FTP等。
5.4 数据源配置
数据源配置是ureport2中的重点模块,因为后续数据处理、计算、报表展⽰都是基于数据源中的数据集进⾏操作的。
ureport2⽀持三种类型的报表数据源:直接连接数据库,Spring Bean以及通过实现com.bstek.ureport.definition.datasource.BuildinDatasource接⼝提供的内置数据源。
1、直连数据源:⽐较简单
实现⽅式:
param name1)在⼯程pom⽂件中添加驱动依赖(当前是这种)
2)在WEB-INF下建⽴lib⽂件夹,将驱动jar⽂件放置在lib中;
3)界⾯点击
说明:此处数据作为⽰例,具体以⽤户当前存在的数据库为准。
数据源名称:test
连接⽤户名:qingqing
连接密码:qingqing
驱动名称:sql.jdbc.Driver
连接URL:jdbc:mysql://localhost:3306/mysql?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论