UReport使用总结
UReport2是一款高性能的架构在Spring之上纯Java报表引擎,通过迭代单元格可以实现任意复杂的中国式报表。在UReport2中,提供了全新的基于网页的报表设计器,可以在Chrome、Firefox、Edge等各种主流浏览器运行(IE浏览器除外),打开浏览器即可完成各种复杂报表的设计制作。
UReport2是第一款基于Apache-2.0协议开源的中式报表引擎。
项目地址
安装与配置
- 创建一个maven项目,在pom.xml中添加依赖
<dependency><groupId>com.bstek.ureport</groupId><artifactId>ureport2-console</artifactId><version>[version]</version>
</dependency>
- 配置ureport需要的servlet
@ImportResource("classpath:context.xml")
@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}/*** "/ureport/*" 固定写法* @return*/@Beanpublic ServletRegistrationBean buildUreportServlet(){return new ServletRegistrationBean(new UReportServlet(),"/ureport/*");}
}
- 如果将UReport配置到已经存在的spring项目中,同时spring也要加载自己的properties文件,需要进行如下配置:
在src->main->resources 下创建一个context.properties文件,并且在application类加注解@ImportResource(“classpath:context.xml”)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><import resource="classpath:ureport-console-context.xml"/><!-- 引入配置文件 --><bean id="propertyConfigurer" parent="ureport.props"><property name="location"><!-- spring项目的配置文件 --><value>classpath:application.yml</value></property></bean></beans>
- 需要加载的自己的properties文件如下ureport.properties
#文件的保存路径 随便配置
ureport.fileStoreDir=E:/web/ureportfiles
ureport.disableFileProvider=false
ureport.debug=true
ureport.disableHttpSessionReportCache=false
到这里,我们就在一个标准的 Maven 项目中加入了 UReport2,运行项目,在浏览器中访问 URL:http://localhost:8080/ureport-demo/ureport/designer,就可以看到 UReport2 的报表设计器界面。
报表保存以及数据源配置
- 数据库数据源
点测试连接 提示成功则保存,就可以选择数据库中的某个表把数据取出来。 - spring bean数据集
创建一个bean类
@Component
public class TestBean {/*** @param dsName 数据源名称* @param datasetName 数据集名称* @param parameters 外部传入的map* @return*/public List<Map<String,Object>> loadReportData(String dsName,String datasetName,Map<String,Object> parameters){return null;}public List<User> buildReport(String dsName,String datasetName,Map<String,Object> parameters){return null;}
}
添加数据集的时候选择方法就会弹出上面两个在代码中定义的方法名,返回对象如果指定返回对象需要使用全路径即可
- 内置数据源
@Component
public class TestInDataSource implements BuildinDatasource {@Autowiredprivate DataSource dataSource;@Overridepublic String name() {return "cluster";}@Overridepublic Connection getConnection() {try {return dataSource.getConnection();} catch (SQLException throwables) {throwables.printStackTrace();log.println("========"+throwables.getMessage());}return null;}
}
如果报DataSource为空,在pom.xml中添加依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
UReport使用总结相关推荐
- 水晶报表 jar包版本过低_工具类学习-UReport报表设计器整合
dada-report报表整合UReport报表设计器工具 结合日常工作和学习实践,针对传统报表子站面临的问题,尝试借助UReport报表设计器解决 1.可在现有工程基础上引入Ureport2报表设计 ...
- ureport 报表合并单元格后双斜表头制作
ureport 报表双斜表头制作 本人翻遍了百度也没有找到合适的方法 无意间的操作竟然成功了 下面分享下步骤 具体细节朋友自己微调下 感觉对您有帮助 点个赞 1.首先打开报表制作中心 选择要合并的单元 ...
- Spring boot 集成 ureport (三) 报表存储至数据库
声明:代码为核心代码,为了简洁!完整代码请移步我的github -->[带我传送到github] UReport2默认提供的名为"服务器文件系统"的报表存储机制,实际上是实现 ...
- ureport使用问题总结
文章目录 1.数据属性 过滤条件 在集合中的使用格式 2.获取模版生成的html字符串 3.换行的使用 4.总分总形式模版设计 5.动态传参数到 sql 中 like 用法 6.sql 获取外部参数- ...
- vue ureport
1.SpringBoot后端整合不用说 <template><t-drawer class="r-dw" :visible="visible" ...
- 开源UReport 整合到产品中实践简要:(七)ureport设计器设计报表前基本功知识-表达式与函数
一.ureport中表达式(其实也包含了函数,函数也是在表达式进行定义) (1)基本表达式类型:数字(含小数位支持),字符串,布尔值 (2)支持加减乘除,求余数(%). (三)三元表达式: 可以看到, ...
- Springboot + Ureport
Ureport通过配置生成报表 一.首先创建一个springboot项目,引入包,pom.xml 如下: <?xml version="1.0" encoding=" ...
- ureport 显示html,Ureport2报表使用问题及注意事项汇总
近期处理了一些Ureport2报表问题,对源码略有了解.现将所遇到的问题总结如下: ------------------------------------------ 问题:html显示的表格实际宽 ...
- 开源UReport 整合到产品中实践简要:(二)UReport 设计器制作的报表效果参考(转载)
UReport2是一款基于架构在Spring之上纯Java的高性能报表引擎,通过迭代单元格可以实现任意复杂的中国式报表. 在UReport2中,提供了全新的基于网页的报表设计器,可以在Chro ...
最新文章
- GATB的使用小例子test.cpp
- 十个 Laravel 5 程序优化技巧
- 3.2 为超参数选择合适的范围-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- Struts2做下载
- 让你的手机浏览器来一场AR风暴
- 老的消息中间件投递失败的类型值_RabbitMQ消息中间件技术精讲11 高级篇四 confirm 确认消息...
- bzoj 4393 Usaco Fruit Feast
- 小鹏汽车4月交付量5147台 同比增长285%
- pyqt5 getsavefilename 默认文件名_经Jerry编程小课堂之python如何安装PyQt5和QT Designer...
- bzoj 1015 [JSOI2008]星球大战starwar
- 科来网络分析系统11.1(技术交流免费版)
- matlab中的连乘符号,数学中的连乘符号
- java get set怎么用_JAVA get set用法
- 求助matlab崩溃问题的解决方案
- id 查找apple_Apple ID忘记了怎么办 Apple ID找回方法【详细介绍】
- 分解因式公式JAVA_递归算法解决因式分解(java版)
- android shell打包
- 【致敬世界杯】球迷(我)和足球的故事
- java int类型能表示的数值范围
- 用python处理excel 数据分析_数据分析---用python处理excel
热门文章
- windows,win10如何离线安装chrome
- 微博达人硅谷之歌:Testin云测移动搜索性能测试很是让人信服
- 大漠插件,按键精灵与屏幕捕捉相关的软件通病
- 进入系统后win10电脑死机怎么办
- 百度APIStore
- 对非自动化测试的自动化支持
- MQTT协议图解,一文看懂MQTT协议数据包(真实报文数据解析解释)
- 牛客2020年七夕节比赛 D.拜托了,牛老师
- linux下做pe工具,手工组合制作多功能U盘维护工具(LINUX、PE、DOS、GHOST)
- true在python是什么意思_Python3中真真假假True、False、None等含义是什么