FineReport报表二次开发

上传人:人*** 文档编号:542489604 上传时间:2023-12-19 格式:DOCX 页数:33 大小:208.41KB
返回 下载 相关 举报
FineReport报表二次开发_第1页
第1页 / 共33页
FineReport报表二次开发_第2页
第2页 / 共33页
FineReport报表二次开发_第3页
第3页 / 共33页
FineReport报表二次开发_第4页
第4页 / 共33页
FineReport报表二次开发_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《FineReport报表二次开发》由会员分享,可在线阅读,更多相关《FineReport报表二次开发(33页珍藏版)》请在金锄头文库上搜索。

1、FineReport报表二次开发在大多数情况下FineReport都可以完全满足用户制作各种报表的需求,但是为了能够满足 个别用户的个性化需求,FineReport提供了丰富二次开发接口,方便用户将FineRepor七和自己 的项目实现无缝结合,用户在进行二次开发的工程中可以更加深入的体会到FineReport 工具的 强大功能。例如:在一些特殊领域,可能需要一些特殊的函数。或者要将某个模板文件通过指定的打印 机打印等等。目录单元格格式设置7将模板通过指定打印机打印 10自定义函数12URL传递参数22向报表中添加单元格25读取单元格容29创建程序网络模版32读取模板报表36Report的输入

2、输出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 temp

3、lateImporter = new TemplateImporter(); WorkBook workBook = (WorkBook)templateImporter.generate(cptFile);Stuff.cpt是用报表设计器生成的模板文件。只需要用建立一个TemplateImporter对象,然 后调用它的generateReport()方法来产生一个Report对象,同时可以将产生的Report对象强 制转换成 WorkSheet 或者 GroupReport。保存成模板文件/ CPT/清空公式计算结果E:newtemplatestuff.cpt这个是导出后新文档生成的地址R

4、eportHelper. clearFormulaResult (workBook);outputStream = newFileOutputStream(newFile(E:newtemplatestuff.cpt);TemplateExporter templateExporter = new TemplateExporter();templateExporter.export(outputStream,workBook.execute(parameterMap);通过调用TemplateExporter的exportReport(.)方法,可以把Report对象以CPT格式保 存到外部磁

5、盘文件当中。可执行代码读取报表模板stuff.cpt,再分别保存为stuff.cpt,stuff.pdf和stuff.xls。package .fr.demo;import java.io.File;import java.io.FileOutputStream;import .fr.base.FRContext;import .fr.base.dav.LocalEnv;import .fr.report.WorkBook;import .fr.report.core.ReportHelper;import .fr.report.io.ExcelExporter;import .fr.repo

6、rt.io.PDFExporter;import .fr.report.io.TemplateExporter;import .fr.report.io.TemplateImporter;import .fr.report.io.TextExporter;import .fr.report.io.WordExporter;/*演示如何导入导出模板* author edgar duan* version 6.5*/public class ReportIO /* param args*/public static void main(String args) /报表运行环境路径,WEB-INF目

7、录所放的位置String envPath = C:/FineReport6.5/WebReport/WEB-INF;/设置当前报表运行环境,报表预览时需要一个运行环境/ 没有 WEB-INF 目录时,路径设置为 null. FRContext.setCurrentEnv(newLocalEnv(null);FRContext.setCurrentEnv(new LocalEnv(envPath);try /读取模板File cptFile = new File(D:stuff.cpt);TemplateImporter templateImporter = new TemplateImport

8、er();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:newtemplatestuff.cpt);TemplateExporter templ

9、ateExporter = new TemplateExporter();templateExporter.export(outputStream,workBook.execute(parameterMap);/生成 PDFReportHelper.clearFormulaResult(workBook);outputStream = new FileOutputStream(newFile(E:newtemplatestuff.pdf);PDFExporter pdfExporter = new PDFExporter();pdfExporter.export(outputStream, w

10、orkBook.execute(parameterMap);/生成DOCReportHelper.clearFormulaResult(workBook);outputStream = new FileOutputStream(newFile(E:newtemplatestuff.doc);WordExporter wordExporter = new WordExporter();wordExporter.export(outputStream,workBook.execute(parameterMap);/生成XLSReportHelper.clearFormulaResult(workB

11、ook);outputstream = new FileOutputStream(new File(E:newtemplatestuff.xls);ExcelExporter excelExporter = new ExcelExporter();excelExporter.export(outputStream,workBook.execute(parameterMap);生成TXTReportHelper.clearFormulaResult(workBook);outputStream = new FileOutputStream(new File(E:newtemplatestuff.

12、txt);TextExporter textExporter = new TextExporter();textExporter.export(outputStream,workBook.execute(parameterMap); catch(Exception e) e.printStackTrace();单元格格式设置新建一个单元格,位置为(2, 2),列宽为2/行高为2,值为文本FineReportCellElement cellElement = new CellElement(2, 2, 2, 2, FineReport);/得到CellElement的样式,如果没有新建默认样式S

13、tyle style = cellElement.getStyle();if(style = null) style = Style.getInstance();/设置字体和前景的颜色FRFont frFont = FRFont.getInstance(Dialog, Font.BOLD, 14);frFont = frFont.applyForeground(new Color(21, 76, 160);style = style.deriveFRFont(frFont);/设置背景ColorBackground background = ColorBackground.getInstanc

14、e(new Color(255, 255, 17 7);style = style.deriveBackground(background);/设置水平居中style = style.deriveHorizontalAlignment(Constants.CENTER);/设置边框style = style.deriveBorder(Constants.LINE_DASH_DOT, Color.red, Constants.LINE_D ASH_DOT, Color.yellow, Constants.LINE_DASH_DOT, Color.BLUE, Constants.LINE_DASH

15、 _DOT, Color.CYAN);/改变单元格的样式cellElement.setStyle(style);改变单元格的格式,应先取出该单元格(CellElement)的格式(Style)。在默认的情况下 Styl e是null,故当取出Style后应先判断其值是否为null,如果这个值为空,则需先新建一 个Style,然后再将该值赋给CellElement。最后根据Style和FRFont中的方法进一步地设置该 单元格的各种属性。可执行代码如下:package .fr.demo;import java.awt.Color;import java.awt.Font;import .fr.base.Constants;import .fr.base.FRFont;import .fr.base.Style;import .fr.base.background.ColorBackground;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号