JasperReport之exploer常用参数解析

   工作流程介绍

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

2.3      重要的ClassInterface详细介绍

Ø         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

报表输出到Graphics2DJava2D应用的时候才会用到

Ø         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.4Exporter常用参数说明

net.s.jasperreports.engine.JRExporterParameter. JASPER_PRINT

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

net.s.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被序列化对象的输入流,exporter在导出报表前会做检测

net.sf.jasperreports.engine.JRExporterParameter.INPUT_URL

这个参数是包含net.sf.jasperreports.engine.JasperPrint被序列化对象的URL,exporter在导出报表前会做检测

net.sf.jasperreports.engine.JRExporterParameter.INPUT_FILE_NAME

这个参数是存储了net.sf.jasperreports.engine.JasperPrint被序列化对象的文件路径,exporter在导出报表前会做检测

注意:以上几个参数不能全部为空

net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_STRING_BUFFER

这个参数是java.lang.StringBuffer的对象,存储已经产生出的指定格式报表的内容

net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_WRITER

这个参数是java.io.Writer的对象,将指定格式报表的内容发送到一个字符流,例如Servlet的PrintWriter

net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_STREAM

这个参数是java.io.OutputStream的对象,将指定格式报表的内容发送到一个输出流,例如ServletOutputStream

net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_FILE

这个参数是java.io.FILE的对象,将指定格式报表的内容存储到文件里面

net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_FILE_NAME

这个参数是java.lang.String的对象,将指定格式报表的内容存储到文件里面

net.sf.jasperreports.engine.JRExporterParameter.CHARACTER_ENCODING

这个参数是java.lang.String的对象,指定格式报表的内容编码

net.sf.jasperreports.engine.JExcelApiExporterParameter.IS_FONT_SIZE_FIX_ENABLED

这个参数是java.lang.Boolean的对象,是否允许自动修正Excel每个栏位的大小

net.sf.jasperreports.engine.JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET

这个参数是java.lang.Boolean的对象,每一页是否用一个Sheet

net.sf.jasperreports.engine.JRXlsExporterParameter. IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS

这个参数是java.lang.Boolean的对象,是否移除行与行之间的空行

net.sf.jasperreports.engine.JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND

这个参数是java.lang.Boolean的对象,页面的背景是否为白的

net.sf.jasperreports.engine.JRXlsExporterParameter.SHEET_NAMES

这个参数是java.lang.String的对象,Sheet的名字

net.sf.jasperreports.engine.JRCsvExporterParameter.FIELD_DELIMITER

这个参数是java.lang.String的对象,栏位之间的分隔符

net.sf.jasperreports.engine.JRCsvExporterParameter.RECORD_DELIMITER

这个参数是java.lang.String的对象,栏位之间的分隔符

net.sf.jasperreports.engine.JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR

这个参数是java.lang.Boolean的对象,是否输出图片到目录

net.sf.jasperreports.engine.JRHtmlExporterParameter.IMAGES_DIR_NAME

这个参数是java.lang.String的对象,图片目录的绝对路径

net.sf.jasperreports.engine.JRHtmlExporterParameter.IMAGES_DIR

这个参数是java.io.File的对象,图片目录

net.sf.jasperreports.engine.JRHtmlExporterParameter.IMAGES_URI

这个参数是java.lang.String的对象,通过Web访问时图片的URI

JasperReport内置的常用参数说明

这些参数是放到java.util.Map,在填充报表的时候使用

REPORT_CONNECTION

这个参数是java.sql.Connection对象,在用Report Query的时候调用

REPORT_DATASOURCE

这个参数是实现了接口net.sf.jasperreports.engine.JRDataSource的对象,在填充报表的时候调用

IS_IGNORE_PAGINATION

这个参数是java.lang.Boolean对象,报表是否忽略分页

REPORT_MAX_COUNT

这个参数是java.lang.Integer对象,报表显示的最大记录数

DRAWING_SUPPLIER

这个参数是实现了接口org.jfree.chart.plot.DrawingSupplier对象,定义自己的填充色

这个参数不是原来JasperReport定义的,是后来加上的

2.6    JasperReport内置的常用变量说明

PAGE_NUMBER

当前页面的页码,即第几页

REPORT_COUNT

整个报表填充完成后,总的记录数

PAGE_COUNT

当前页面的记录数

COLUMN_COUNT

当前记录的行数,每个页面的计数会复位后重新计算。

2.7 如何实现接口JRDataSource

当调用填充报表过程的时候,负责填充的类会通过这个接口获取到相应的数据,jasperreport提供了几个实现了这个接口的类:

net.sf.jasperreports.engine.JRResultSetDataSource

这个是通过JDBC访问关系数据库得到的数据源

net.sf.jasperreports.engine.data.JRTableModelDataSource

这个是调用Java Swing tables得到的数据源

net.sf.jasperreports.engine.data.JRBeanCollectionDataSource

这个是调用collections得到的数据源

我们要定义自己的DataSource,需要实现下面两个方法:

public boolean next() throws JRException;

报表填充数据的时候,填充每一条记录之前都会调用这个方法,将指针移动到下一条数据,如果有下一条数据返回true,否则返回false。

public Object getFieldValue(JRField jrField) throws JRException;

当填充报表的每一个栏位的时候,会调用这个方法获取填充的值。JrField是报表里面定义显示栏位的对象在iReport工具里面可以定义jrField的名字类型以及description

2.8JasperReport如何绘制图形报表
JasperReport本身是不绘制图形报表的,JasperReport是通过调用JFreeChart产生的image显示到报表的页面里,所以我们还需要再了解JFreeChart,我们将再后面的章节介绍JFreeChart。

posted on 2009-02-06 15:10 互动百科 阅读(417) 评论(0)  编辑  收藏 所属分类: iReport

<2025年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

留言簿

随笔分类

文章分类

文章档案

Links

搜索

最新评论