原理介绍
分类:编程教程

1. JasperReport介绍

    JasperReport 是一个开源的Java报表引擎,它不像其余的表格工具,比如Crystal报表是基于Java的,未有和谐的表明式语法。贾斯帕Reports有提供足够的开始和结果到显示屏上,到打字与印刷机,或调换来PDF,HTML,XLS,RTF,ODT,CSV,TXT和XML文件的力量。JasperReports是叁个Java类库,须求安放到Java应用程序中。JasperReport的表征如下:

  • 不无灵活的报表布局;
  • 能够用文字或图片显示数据;
  • 开垦职员能够透过三种方法提供数据;
  • 能够承受来自三个数据源的多少;
  • 能够调换水印(水印是那样的法门被放置在主图像的副图像);
  • 能够生成子报表;
  • 可以知道导出报表到各类格式的。

2. 支出流程

    JasperReport完全由Java编写,能够用于在种种Java应用程序,满含J2EE,Web应用程序中生成动态内容。它根本目标是扶植生成面向页面包车型地铁、希图打字与印刷的文档。上面的流程图描述了一个标准的报表开拓的办事流程。

 六和开奖现场 1

    如上海体育地方所示,JasperReport报表开拓分为多少个阶段:

(1)设计报表

    那个阶段是制造jrxml文件,该文件是含有报表布局定义的XML文书档案,能够选择贾斯帕Soft Studio或iReport这两种可视化开源开荒工具来创制。

(2)编写翻译报表

    那风姿洒脱阶段是将源文件(*.jrxml)编写翻译成二进制文件(*.jasper),该jasper文件可以随应用程序运营。

(3)推行报表

    该步骤是将应用程序中的数据填充在表格模板中,即jasper文件。那蒸蒸日上等级将会发出jasper打字与印刷文件(*.jrprint),该文件能够用来打字与印刷或导出报表。

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

    JasperReport提供了各类格局的导出格式,如:HTML,PDF,Excel等。该阶段能够导出必要的表格格式。

3. 兑现原理

六和开奖现场,    JasperReport Library为报表开垦提供了增进的类库,个中变化报表并打字与印刷、导出全经过如下图所示。

 

六和开奖现场 2

    开辟流程如下:

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

(2)使用JasperReports提供的JasperCompileManager工具编写翻译*.jrxml文件,编写翻译后生成三个*.jasper文件。

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

(4)使用导出处理器JasperExportManager恐怕各样格式的公文导出器JHavalXxxExporter将*.jrprint文件导出成各类格式的报表文件。也可以使用JGL450Viewer工具类来直接浏览报表。也得以应用打字与印刷管理器JasperPrintManager来打字与印刷表格。

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、UENVISIONLs、intput stream等。这些类最令人感兴趣的函数当属loadOnjectFromLocation(String location)[3]。当客户使用那些类从钦定地址装载对象的时候,该函数将第后生可畏将location解释为叁个合法的U福特ExplorerL,假设言之有序失利,函数将认为所提供的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中,我们能够通过这么些类来打印表格,它含有了具备的打字与印刷作用。它提供了打字与印刷整个文书档案或许部分文书档案、显不显得打字与印刷对话框的秘籍。使用这么些类能够将贾斯帕Reports文书档案的一页作为叁个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和其他的格式。JKoleosXlsExporter、JRPdfExporter、J奥迪Q5XmlExporter、JRCsvExporter、JEvoqueHtmlExporter、JRTextExporter、JKugaENVISIONtfExporter。

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

    那些类能够直接将*.jasper文件导出成各个格式的报表文件,不经常候在表格填写进度中大家不期望生成人中学间的net.sf.jasperreports.engine.JasperPrint对象,而一贯扭转我们所须要的文书档案格式,举例:PDF或HTML。

5. 报表数据源

    Jasper报表引擎得到来自数据源的数量,能够从数据库,XML文件,对象数组和集纳中的对象来获得。后面大家介绍了利用JasperFillManager来完结报表的数码填充,具体是由fillReportXXX()方法获得数据源实行填空。

(1)JDBC数据源

    JRResultSetDataSource类关联入二个java.sql.ResultSet对象。那是当报表数量从关周密据库中领到最常用的数据源实现。倘使利用java.sql.Connection传递给引擎,它首先实施有关的查询,并将该重临java.sql.ResultSet中的对象在一个J福特ExplorerResultSetDataSource实例。

(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数据源

    类JRubiconXmlDataSource是依据DOM,它接纳XPath表明式来采撷XML文书档案数据的数据源的落到实处。 XML数据源中的记录是通过XPath表明式选拔的节点元素表示。字段值是由各类记录使用由字段描述(JTiggoXML<田野先生Description>成分)所提供的XPath表明式检索。

(6)CSV数据来自

    JRCsvDataSource 代表了从结构化文本文件中检索其数据的数据源的落到实处,平日为CSV。字段值是正在使用他们的列索引检索。

(7)XLS数据来源于

    J路虎极光XlsDataSource 代表其找寻的Excel文件的多寡的数据源的兑现。报表字段映射为那个数据源的得以落成也是基于字段列索引。

(8)空数据来源于

    类JREmptyDataSource,模拟与个中设想空的笔录给定数据的数据源。它是由顾客分界面包车型大巴工具来提供基本的表格预览作用,或在特别报告模板,或用来测量检验和调护医治指标。

   

到此停止,JasperReport报表开垦的任何流程和贯彻原理已经介绍完了,在询问了那一个之后,后边施行起来心里将要驾驭一些。

参照他事他说加以考察文献

[1] JasperReport在线教程.

[2] JasperReports 报表的支付流程.http://topmanopensource.iteye.com/blog/1866879

[3] JasperReport API.

本文由六和开奖现场发布于编程教程,转载请注明出处:原理介绍

上一篇:常用DOS命令 下一篇:没有了
猜你喜欢
热门排行
精彩图文