finereport使用
- finereport的集成方式与部署方式
- finereport的数据集简单操作
- 程序数据集
- 数据库数据集
- finereport模版文件展示
- finereport设计器操作
finereport的集成方式与部署方式
- 独立部署
- 直接使用finereport服务器提供的部署tomcat进行部署
- 优点:独立部署,不影响其他项目的使用,解耦。独立操作所有模版进行分配。
- 缺点:程序数据集,等大数据操作时,需要在此引入finereport的jar包进行开发。
- 集成到web项项目
- servlet/spring项目,可将web-info/lib下的jar复制到本身项目中,并把tools.jar(jdk下的文件)复制到本身项目lib中即可。
- springboot项目,目前集成只能jar启动方式,改成war包的启动方式进行部署启动。
- 手动新建webapp目录
- 将finerepot项目webapp目录下的文件copy到项目中新建的webapp目录
- 将jdk中的tools.jar复制到lib目录
- 在tomcat catlinna.sh配置tools.jar的访问路径
- 缺点:整个项目很大可能会1-2个g的大小。
finereport的数据集简单操作
- 在官网下载finereport v10设计器 ,进行安装。
finereport模版开发教程
- 视频教程(p4,p5,p6即可):https://www.bilibili.com/video/BV1YJ411w7JK?p=12&spm_id_from=333.880.my_history.page.click
程序数据集
FineReport 是通过 AbstractTableData 抽象类来读取数据源的,所有的数据来源都继承实现其抽象方法。因此用户只要实现了 AbstractTableData 抽象类,就可以用自定义类型的数据源,FineReport 报表引擎就能够读取定义的数据源作为报表数据源使用。
整体思路
- 1) 定义数据表结构
- 2)实现 AbstractTableData 抽象类
- 3)将获取到的数据放入到定义的表中
- 4)如果数据连接没有定义,可以自己创造连接
- 5)释放一些资源,将上次查询的结果释放掉
需要的依赖
- %FR_HOME%/lib下的所有的包
- %FR_HOME%/server/lib下的所有包
- %FR_HOME%/webapps/webroot/WEB-INF/lib下的所有包
- JDK 下的的 tools.jar
- 实现AbstractTableData抽象类
package com.fr.data;
import java.util.ArrayList;
import java.util.List;
public class SimpleArrayTableDataDemo extends SimpleTableData {
/**
* 初始化列头
* @return
*/
@Override
public String[] initColumnNames() {
return new String[]{"Name", "Score"};
}
/**
* 加载行列数据
* @return
*/
@Override
public List<Object[]> loadData() {
ArrayList<Object[]> valueList = new ArrayList();
valueList.add(new Object[]{"Alex", 15});
valueList.add(new Object[]{"Helly", 22});
valueList.add(new Object[]{"Bobby", 99});
return valueList;
}
- 设计器中直接设置
- 服务器中:SimpleArrayTableDataDemo.class 类文件文件复制到%FR_HOME%webapps/webroot/WEB-INF/classes/com/fr/data工程目录下
- 设计好的报表部署
- 将cpt文件放在reportlets目录下
- 将程序集放入%FR_HOME%webapps/webroot/WEB-INF/classes/com/fr/data
- 数据库连接,直接在web页面新建连接
数据库数据集
- 服务器配置数据连接
- 设计器JDBC 数据连接