了解Ureport2

从上面这段对ureport2的描述中,可以整理出如下信息:
- 这个组件是用来生成报表的
- 它是用java语言编写的
- 基于spring构建,以spring在如今java应用系统中的普及率来看,这意味着这款报表组件能够很好的与大部分系统结合
- 高性能-目前还是初次接触,并没有做过性能测试,因此这里假设它是高性能的
- 通过迭代单元格来实现任意复杂的中国式报表,回想一下以前用过的报表组件,最早接触到的是java写的jfreechart,用的最多的是js写的highcharts,最经典的用法就是后台准备数据,然后交给highcharts中各个具体的控件来渲染.因为之前都是停留在使用层面上,所以这里的迭代单元格我不太明白,是说可以通过对每个单元格定制数据和样式来实现复杂的报表吗?
- 它提供了一个网页版的设计器
搭建简单示例
- 新建一个maven web项目,然后导入ureport2包和数据库驱动包,如下图:

- 在spring配置文件中导入ureport2配置文件
- 然后就是在web.xml中配置spring和ureport2,如下图:

- 最后部署运行这个web应用,打开http://localhost:8080/ureport/designer就可以使用设计来创建报表
项目结构
github ureport2项目主页上可以看到如下图:
| 目录 | 内容 |
| docs | 项目相关文档 |
| ureport2-console | 处理报表设计发送的报表相关的请求 |
| ureport2-core | 相关模型定义、报表解析、存储、导出和构造相关的代码 |
| ureport2-font | 自定义字体 |
| ureport2-js | 网页设计器js脚本 |
| ureport2-parent | 包含项目的一些基本信息,比如license,开发人员,maven仓库配置等 |
熟悉报表设计器
工具栏

报表内容设计区

非表格类型的报表设计:

数据源面板
报表的目的是更直观的展示数据,数据集就相当于一个逻辑数据块,类似于sql里面的视图
单元格属性配置面板

几个简单的用例
企业供应信息统计

表达式列的使用

饼形图

创建查询表单

源代码浅析
找到入口
在web.xml中配置的UReportServlet是ureport2-console项目的入口,它处理所有/ureport前缀的请求并根据url将具体的请求分发到对应的ServletAction来实现



具体的代码分析
在chrome中可以通过控制台网络面板看到在ureport2进行各种操作后发送到后台的请求来跟踪具体模块的代码,如下图:

所有的报表逻辑处理类在ureport-console项目src/main/resources/ureport-console-context.xml文件中都有配置

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198963.html原文链接:https://javaforall.net
