JasperReports 编程指南1.0
1、简介:
Jasperreport程序库是一个灵活,功能强大的报表产生工具,可以以PDF, HTML或XML等多种形式产生报表,并有希望支持CSV, XLS, RTF等格式报表。
该引擎由java编写,支持多种形式应用程序产生动态报表,如J2EE,网络报表等。其主要目的是产生页面导向、方便打印的报表文档。
Jasperreport是按照一个预定义的xml文档来组织报表的数据,这些数据来源多样,包括关系数据库、java容器对象(collection和arrays),后面我们将介绍,用户通过简单的接口来实现数据源与报表引擎的使用。
要完成报表的填充,必须先完成用于报表的xml文件,其过程是先产生报表设计对象,再序列化该对象,存储在磁盘或者网络,用于产生特定应用的表格数据。事实上,表单的设计过程就是用定义于xml文件中的java表达式来表现报表的设计。编辑过程中会有各种保证数据一致性的验证,最终会产生相关数据文档或填充数据的准备。
报表引擎必须先接受数据(通过参数等多种形式)来产生报表,更多的是来自数据源,引擎直接接收用于填充表格的数据源对象,或者通过自身提供的JDBC连接对象来处理数据库的数据。
报表最终要产生一个新的对象来进行填充操作从而产生打印文档对象,这也是一个存储在磁盘或网络传输介质的序列化对象。Jasperreport的内置浏览器能直接查看结果或者以PDF, HTML,XML形式导出。
2、API概览
人们更多的是使用Jasperreport类库的部分内容而不是全部来实现它的特点与功能。这一部分我们介绍一下如何利用这些重要的类和接口来实现Jasperreport提供的报表功能。
类net.sf.jasperreports.engine.design.JasperDesign
之所以从这个类开始,是因为它的实例是jasperreport用于报表产生的原始类,比如,该类实例在用于产生报表的xml文件被解析后获得,或者不产生xml文档而是由调用jasperreport的应用程序产生。在所给的例子中有一个(noxmldesign)就是在不产生xml文件的情况下动态生成该实例的一个例子。所有该类的实例都属于报表的填充和产生以前产生的,所以我们称之为原始类。
类net.sf.jasperreports.engine.design.jasperreport
该类实例表现了报表设计对象,是作为报表的编译过程的结果而被实例化,是向报表中填充数据的准备。在报表的编译过程中协同验证报表元素的合法性,一致性;同时创建了临时文件存储报表中所有的变量,表达式。编译过程中会先查找classpath中tools.jar或者Ant进行编译,编译结果以字节码的形式存储,并且在填充数据时用于判断多种产生报表的形式。