日期:2014-05-17  浏览次数:20826 次

(转)JasperReport 类介绍
URL: http://blog.csdn.net/archie2010/article/details/6363218
http://bbs.51cto.com/thread-488620-1.html
http://it.jimaiwang.com/posts/79.html
http://log-cd.iteye.com/blog/379531
http://yinxiangbing.iteye.com/blog/322717
http://jsfgroup.group.iteye.com/group/topic/4259
JasperReport
2.1      简介
JasperReport 是产生报表的核心部分,首先要先有个xml文件,然后根据jasperreports.dtd编译成jasper文件(以.jasper结尾),我们真正要使用的是编译以后的.jasper文件。xml文件的内容包括对报表样式的定义,数据来源,参数等等,它可以支持的输出格式:PDF,HTML,XML,XLS,CVS等。

在没有iReport之前,需要花费大量的时间去熟悉JasperReport的文档以及自己去写定义报表的xml,现在你一定对iReport的作用有些了解吧

2.2      工作流程介绍

如果我们已经用iReport已经将xml编译为.japser文件后,上图中编译部分的工作就可以省略,JasperFillManager根据定义的数据源和报表模版填充jasperPrint,有数据的报表就在这个部分填充的。如果我们要导出到不同类型的档案,则需要通过 JasperExportMananger,也可以自己写一个类,但是要实现net.sf.jasperreports.engine. JRExporter这个接口。JaserReport提供的exporter再下面一节介绍。

2.3      重要的Class和Interface详细介绍
?         Class net.sf.jasperreports.engine.JasperReport
这个类的对象通过net.sf.jasperreports.engine.util.JRLoader从.jasper文件中获取,为用数据填充和产生报表做准备,当用数据填充报表的时候,运行时求各种各样报表表达式的值。对象中包含了报表的各种元素,例如报表的大小,显示位置,显示的栏位,图片信息等等。

?         Class net.sf.jasperreports.engine.util.JRLoader

所有JasperReports 主要的功能,象报表编辑,报表填充及导出,经常用到序列化的对象,net.sf.jasperreports.engine.util.JRLoader可以帮助从文件或者URLs或者输入流中装载这些被序列化的对象。

?         Class net.sf.jasperreports.engine.JasperPrint

这个类的对象是通过填充类根据net.sf.jasperreports.engine.JasperReport的对象用数据填充后的结果,这样可以被很直观的被别的类引用,将报表输出到网络或者文件

?         Interface net.sf.jasperreports.engine.JRDataSource

JasperReports是一个非常灵活的报表工具,在数据来源方面更是体现了这一点,程序员可以自己定义不同类型的数据源,前提是实现这个接口,我们的数据源就可以千变万化,数据源可以是XML,CSV,TEXT,Object List 等等,在后面的章节详细描述如何实现该接口

?         Class net.sf.jasperreports.engine.export.JExcelApiExporter

报表产生到一个EXCEL文档,如果报表里面有图形,一定要用这个exporter

?         Class net.sf.jasperreports.engine.export.JRCsvExporter

报表产生到一个CVS文档

?         Class net.sf.jasperreports.engine.export.JRGraphics2Dexporter

报表输出到Graphics2D,Java2D应用的时候才会用到

?         Class net.sf.jasperreports.engine.export.JRHtmlExporter

报表产生到一个HTML文档

?         Class net.sf.jasperreports.engine.export.JRPdfExporter

报表产生到一个PDF文档

?         Class net.sf.jasperreports.engine.export.JRRtfExporter

报表产生到一个RTF文档

?         Class net.sf.jasperreports.engine.export.JRTextExporter

报表产生到一个TXT文档

?         Class net.sf.jasperreports.engine.export.JRXlsExporter

报表产生到EXCEL文档,用这个exporter,报表中的图形将不被输出

?         Class net.sf.jasperreports.engine.export.JRTextExporter

报表产生到XML文档

2.4      Exporter常用参数说明

?         net.sf.jasperreports.engine.JRExporterParameter. JASPER_PRINT

这个参数是net.sf.jasperreports.engine.JasperPrint的对象,exporter在导出报表前会做检测

?         net.sf.jasperreports.engine.JRExporterParameter. JASPER_PRINT_LIST

这个参数是包含了n个net.sf.jasperreports.engine.JasperPrint对象的java.util.List,exporter在导出报表前会做检测

?         net.sf.jasperreports.engine.JRExporterParameter.INPUT_STREAM

这个参数是net.sf.jasperreports.engine.JasperPrint被序列化对象的输入流