FineReport报表二次开发(详细)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FineReport报表二次开发

在大多数情况下FineReport都可以完全满足用户制作各种报表的需求,但是为了能够满足个别用户的个性化需求,FineReport提供了丰富二次开发接口,方便用户将FineReport和自己的项目实现无缝结合,用户在进行二次开发的工程中可以更加深入的体会到FineReport工具的强大功能。

例如:在一些特殊领域,可能需要一些特殊的函数。或者要将某个模板文件通过指定的打印机打印等等。

目录

Report的输入输出 (3)

单元格格式设置 (7)

将模板通过指定打印机打印 (10)

自定义函数 (12)

URL 传递参数 (22)

向报表中添加单元格 (25)

读取单元格内容 (29)

创建程序网络模版 (32)

读取模板报表 (36)

Report的输入输出

FineReport提供了强大的输入输出功能,所有的这些输入输出的类都在com.fr.report.io 包里面。Report的输入指从报表的模板文件(XML格式的)创建Report对象,输出指将Report

保存为模板文件,FineReport还支持将Report保存为PDF,Excel,Word,SVG,HTML,CSV

等文件格式。

•读取模板文件

•保存成模板文件

•输出成PDF文件

•输出成Word文件

•输出成Excel文件

•输出成文本文件

•可执行代码

读取模板文件

// 读取模板

File cptFile = new File("D:\\stuff.cpt");

TemplateImporter templateImporter = new TemplateImporter(); WorkBook workBook = (WorkBook)templateImporter.generate(cptFile);

Stuff.cpt是用报表设计器生成的模板文件。只需要用建立一个TemplateImporter对象,

然后调用它的generateReport()方法来产生一个Report对象,同时可以将产生的Report对

象强制转换成WorkSheet或者GroupReport。

保存成模板文件

// CPT

// 清空公式计算结果

E:\\newtemplate\\stuff.cpt这个是导出后新文档生成的地址

ReportHelper.clearFormulaResult(workBook);

outputStream = new FileOutputStream(new

File("E:\\newtemplate\\stuff.cpt"));

TemplateExporter templateExporter = new TemplateExporter();

templateExporter.export(outputStream,workBook.execute(paramet

erMap)) ;

通过调用TemplateExporter的exportReport(...)方法, 可以把Report对象以CPT格

式保存到外部磁盘文件当中。

可执行代码

读取报表模板stuff.cpt,再分别保存为stuff.cpt,stuff.pdf和stuff.xls。

package com.fr.demo;

import java.io.File;

import java.io.FileOutputStream;

import com.fr.base.FRContext;

import com.fr.base.dav.LocalEnv;

import com.fr.report.WorkBook;

import com.fr.report.core.ReportHelper;

import com.fr.report.io.ExcelExporter;

import com.fr.report.io.PDFExporter;

import com.fr.report.io.TemplateExporter;

import com.fr.report.io.TemplateImporter;

import com.fr.report.io.TextExporter;

import com.fr.report.io.WordExporter;

/**

* 演示如何导入导出模板

* @author edgar duan

* @version 6.5

*/

public class ReportIO {

/**

* @param args

*/

public static void main(String[] args) {

// 报表运行环境路径, WEB-INF目录所放的位置

String envPath = "C:/FineReport6.5/WebReport/WEB-INF";

// 设置当前报表运行环境, 报表预览时需要一个运行环境

// 没有WEB-INF目录时, 路径设置为null. FRContext.setCurrentEnv(new

LocalEnv(null));

FRContext.setCurrentEnv(new LocalEnv(envPath));

try {

// 读取模板

File cptFile = new File("D:\\stuff.cpt");

TemplateImporter templateImporter = new TemplateImporter();

WorkBook workBook =

(WorkBook)templateImporter.generate(cptFile);

java.util.Map parameterMap = new java.util.HashMap();

FileOutputStream outputStream;

//生成CPT

// 清空公式计算结果

ReportHelper.clearFormulaResult(workBook);

outputStream = new FileOutputStream(new File("E:\\newtemplate\\stuff.cpt"));

TemplateExporter templateExporter = new TemplateExporter();

templateExporter.export(outputStream,

workBook.execute(parameterMap)) ;

//生成PDF

ReportHelper.clearFormulaResult(workBook);

outputStream = new FileOutputStream(new

File("E:\\newtemplate\\stuff.pdf"));

PDFExporter pdfExporter = new PDFExporter();

pdfExporter.export(outputStream,

workBook.execute(parameterMap)) ;

// 生成DOC

ReportHelper.clearFormulaResult(workBook);

outputStream = new FileOutputStream(new

File("E:\\newtemplate\\stuff.doc"));

WordExporter wordExporter = new WordExporter();

wordExporter.export(outputStream,workBook.execute(parameterMap));

// 生成XLS

ReportHelper.clearFormulaResult(workBook);

相关文档
最新文档