JasperReport报表开发分为四个阶段

5. 表格数据源

   
Jasper报表引擎获得来自数据源的数额,能够从数据库,XML文件,对象数组和聚集中的对象来博取。前边我们介绍了选择JasperFillManager来落成报表的数量填充,具体是由fillReportXXX()方法赢得数据源实行填空。

(1)JDBC数据源

   
JPAJEROResultSetDataSource类关联入二个java.sql.ResultSet对象。那是当报表数量从关周全据库中领取最常用的数据源完成。假如应用java.sql.Connection传递给引擎,它首先实行相关的询问,并将该重返java.sql.ResultSet中的对象在一个J卡宴ResultSetDataSource实例。

(2)JavaBean数据源

   
JRBeanArrayDataSource类和JRBeanCollectionDataSource类完成了能够分别包装的JavaBean对象的数组或会集。数组或集合中的每一种对象都将被视为对那类别型的数据源中的贰个记录。一个一定的JavaBean属性和相应的表格字段之间的映射是由此命名约定举行。报表字段的称呼必需是一律的所钦命的JavaBeans的标准JavaBean属性的名称。

(3)基于Map数据源

   
父级应用程序已经积攒在内部存款和储蓄器中的java.util.Map对象提供填充数据的兑现类JRMapArrayDataSource和JRMapCollectionDataSource非常低价。被卷入的数组或集结中的每种映射对象被以为是数据源中的二个虚构的笔录,每种报表字段的值从映射中动用报表字段名作为键提取。

(4)TableModel的数据源

   
相当多顾客端应用程序的数额以表格格局突显。在重重运用中分布的必要是同意客商打字与印刷该表格形式的告知。达成类JRTableModelDataSource使生成的报表格式的Swing应用程序报告的职分。那一个类包装了一个javax.swing.table.TableModel对象。列在卷入的TableModel对象能够通过她们的名字或他们的依赖0索引来访谈。

(5)XML数据源

   
类J途睿欧XmlDataSource是依赖DOM,它应用XPath表明式来挑选XML文书档案数据的数据源的兑现。
XML数据源中的记录是透过X帕特h表明式采取的节点元素表示。字段值是由各类记录使用由字段描述(J途观XML<田野同志Description>成分)所提供的XPath表达式检索。

(6)CSV数据来源

    JRCsvDataSource
代表了从结构化文本文件中检索其数据的数据源的贯彻,日常为CSV。字段值是正值利用他们的列索引检索。

(7)XLS数据来源

    JCRUISERXlsDataSource
代表其搜索的Excel文件的数额的数据源的贯彻。报表字段映射为这么些数据源的落实也是依赖字段列索引。

(8)空数据来源

   
类JREmptyDataSource,模拟与中间虚构空的记录给定数据的数据源。它是由客商分界面包车型客车工具来提供基本的表格预览效率,或在奇特报告模板,或用于测量检验和调度指标。

   

到此截至,JasperReport报表开垦的整整工艺流程和兑现原理已经介绍完了,在了解了这几个之后,后边实行起来心里就要了解一些。

1. JasperReport介绍

    JasperReport
是贰个开源的Java报表引擎,它不像其余的报表工具,比如Crystal报表是基于Java的,没有和睦的表达式语法。JasperReports有提供丰裕的内容到荧屏上,到打字与印刷机,或调换来PDF,HTML,XLS,RTF,ODT,CSV,TXT和XML文件的力量。JasperReports是三个Java类库,须求安置到Java应用程序中。JasperReport的特征如下:

  • 不无灵活的报表布局;
  • 可以用文字或图表彰显数据;
  • 开荒人士可以通过各类方法提供数据;
  • 还行来自八个数据源的数额;
  • 能够改变水印(水印是这么的艺术被停放在主图像的副图像);
  • 能够生成子报表;
  • 能够导出报表到各种格式的。

4. 辅车相依落到实处类

    在JasperReport的花费流程中,首要涉及下边包车型地铁那多少个类:

(1)net.sf.jasperreports.engine.design.JasperDesign

    那个类能够在JasperReport类库内置的XML分析器对XML report
design举行剖判管理以往获得\[2\]。其对应与报表模板文件在内部存款和储蓄器中的方式,即*.jrxml文件。

(2)net.sf.jasperreports.engine.JasperReport

    这几个类的实例包蕴了三个通过编写翻译的report
design对象。生成它的火候是对报表编写翻译之后,但尚未对其填入数据的时候。编写翻译进程中,JasperReport必要生成贰个临时的类公事,用以保存report
表达式,如变量表明式、文本、图像表明式、组表明式等等。那一个不常的Java
Source
File是被动态编写翻译的,编写翻译器使用的是JDK中用来实践应用程序的编译器类(compiler
class)。借使tools.jar不在classpath中,编写翻译进度将采取javac.exe来举办后台编译。编写翻译后所得的字节码保存在JasperReport类中,用来在实施期填充数据和给表明式赋值。对应二进制报表文件在内部存款和储蓄器中的情势,也正是相应的*.jasper文件。

(3)net.sf.jasper.engine.JasperPrint

   
当二个报表已经装填好数据以往,那个文书档案就以JasperPrint类的实例出现。那些类能够直接用JasperReport内置的viewer实行查看,也得以类别化到硬盘以备后用,可能发送到网络去。那一个类的实例是报表装填进度后的产物,它能够被JasperReport类库中的导出方法导出成种种流行的格式如PDF,HTML,XML等等。

(4)net.sf.jasperreports.engine.xml.JRLoader

   
装载器用于报表生成的依次显要阶段如编写翻译,填充等。客商和发动机都能够采取这些类来装载所需的种类化对象如file、U哈弗Ls、intput
stream等。这么些类最令人感兴趣的函数当属loadOnjectFromLocation(String
location)\[3\]。当顾客采纳那几个类从钦定地方装载对象的时候,该函数将率先将location解释为叁个官方的ULX570L,借使条分缕析退步,函数将认为所提供的location是硬盘上的二个文本名,并将筹算读取它。假若在钦点地址没找到文件,它将透过classpath定位三个心心相印于该location的能源,全体努力战败以往,将抛出卓殊。

(5)net.sf.jasperreports.engine.JasperCompileManager

   
那是二个与编写翻译有关的类,利用它提供的一部分编写翻译方法,允许大家将一个报表设计文书档案(*.jrxml文件)编写翻译成三个二进制文件(*.jasper文件)。此外,它也足以直接将net.sf.jasperreports.engine.design.JasperDesign(*.jrxml文件在内存中的情势)对象编写翻译成net.sf.jasperreports.engine.JasperReport对象。

(6)Class net.sf.jasper.engine.JasperFillManager 

   
那几个类用来落到实处报表的数据填充。报表填写正是为报表的数量查询提供数据库连接,给报表的参数设置值等。填充在此之前是*.jasper文件,经过填充后就造成了*.jrprint文件–那是贰个可兆示大概可导出成报表的文件。这些类提供了成千上万办法来接受各体系型的report
design,可以是壹个指标、文件、或输入流。它的输出结果也是多种的:file、Object、output
Stream。

(7)net.sf.jasperreports.engine.JasperPrintManager

   
用于将三个*.jrprint文件达成打字与印刷。在JapserReports中,我们得以经过这么些类来打字与印刷表格,它包括了全部的打字与印刷功效。它提供了打字与印刷整个文书档案大概部分文书档案、显不显得打印对话框的办法。使用那些类能够将JasperReports文书档案的一页作为二个java.awt.Image对象来呈现。

(8)net.sf.jasperreports.engine.JasperExportManager

   
这几个管理类对两样来源和不一样去处(文件、输入输出流等)的数据提供分裂的秘技。用于将可突显的报表导出成种种格式的表格文件,举个例子PDF、HTML、XML和别的的格式。

(9)net.sf.jasperreports.engine.export.JRXxxExporter

   
那是一连串的文书导出器,它们用于将*.jrprint文件导出成对应格式的报表文件。比如XSL、PDF、HTML、XML、CSV、RTF、TXT和其他的格式。JENVISIONXlsExporter、JRPdfExporter、J奥德赛XmlExporter、JRCsvExporter、JHavalHtmlExporter、JRTextExporter、J奇骏奥德赛tfExporter。

(10)net.sf.jasperreports.engine.JasperRunManager

   
这几个类能够直接将*.jasper文件导出成各样格式的表格文件,一时候在表格填写进程中大家不期待生成人中学间的net.sf.jasperreports.engine.JasperPrint对象,而直接生成我们所必要的文书档案格式,比如:PDF或HTML。

3. 落实原理

    JasperReport
Library为报表开辟提供了拉长的类库,此中变化报表并打字与印刷、导出全经过如下图所示。

 

图片 1

    开拓流程如下:

(1)开采报表设计文本,也正是一个*.jrxml文件。

(2)使用贾斯帕Reports提供的贾斯帕CompileManager工具编写翻译*.jrxml文件,编写翻译后生成五个*.jasper文件。

(3)使用JasperReports提供的JasperFillManager工具填充编写翻译后的*.jasper文件,填充后生成一个*.jrprint文件。

(4)使用导出管理器JasperExportManager大概各种格式的文书导出器J安德拉XxxExporter将*.jrprint文件导出成各个格式的报表文件。也足以运用J酷路泽Viewer工具类来直接浏览报表。也能够行使打字与印刷管理器JasperPrintManager来打字与印刷表格。

参考文献

[1]
JasperReport在线教程.

[2] 贾斯帕Reports
报表的支出流程.http://topmanopensource.iteye.com/blog/1866879

[3] JasperReport API.

2. 成本流程

   
JasperReport完全由Java编写,能够用来在各样Java应用程序,富含J2EE,Web应用程序中变化动态内容。它至关心重视要指标是扶助生成面向页面包车型大巴、计划打字与印刷的文书档案。上面的流程图描述了三个规范的表格开荒的劳作流程。

 图片 2

    如上海体育地方所示,JasperReport报表开拓分为五个级别:

(1)设计报表

   
那几个品级是创办jrxml文件,该公文是带有报表布局定义的XML文书档案,能够利用JasperSoft
Studio或iReport这三种可视化开源开垦工具来创制。

(2)编写翻译报表

   
这一品级是将源文件(*.jrxml)编写翻译成二进制文件(*.jasper),该jasper文件可以随应用程序运转。

(3)试行报表

   
该步骤是将应用程序中的数据填充在报表模板中,即jasper文件。这一品级将会生出jasper打字与印刷文件(*.jrprint),该公文能够用来打字与印刷或导出报表。

(4)导出报表到所须求的格式中

   
JasperReport提供了各个植花朵样的导出格式,如:HTML,PDF,Excel等。该阶段能够导出供给的表格格式。

相关文章