菜单

澳门金沙国际JasperReport报表开发(一)–原理介绍

2019年3月21日 - www6165com

1. JasperReport介绍

    JasperReport
是3个开源的Java报表引擎,它不像此外的报表工具,例如Crystal报表是基于Java的,没有团结的表明式语法。JasperReports有提供丰盛的内容到显示器上,到打字与印刷机,或转换到PDF,HTML,XLS,KugaTF,ODT,CSV,TXT和XML文件的力量。JasperReports是2个Java类库,供给停放到Java应用程序中。JasperReport的风味如下:

2. 付出流程

   
JasperReport完全由Java编写,能够用来在各个Java应用程序,包罗J2EE,Web应用程序中生成动态内容。它主要目标是协理生成面向页面包车型地铁、准备打字与印刷的文书档案。上边包车型大巴流程图描述了八个独立的表格开发的劳作流程。

 澳门金沙国际 1

    如上航海用体育地方所示,JasperReport报表开发分为五个阶段:

(1)设计报表

   
那一个阶段是创办jrxml文件,该文件是包括报表布局定义的XML文书档案,能够应用JasperSoft
Studio或iReport那两种可视化开源开发工具来创建。

(2)编写翻译报表

   
这一阶段是将源文件(*.jrxml)编写翻译成二进制文件(*.jasper),该jasper文件能够随应用程序运营。

(3)执行报表

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

(4)导出报表到所急需的格式中

   
JasperReport提供了各类样式的导出格式,如:HTML,PDF,Excel等。该阶段可以导出供给的表格格式。

      8.  JasperReport:定义JasperReport对象,首要措施有getCompileData获取编译消息。

JasperReports的报告模板能够以iReport之类的工具来成立,只要把报告储存成XML格式,就足以让JasperReport阅读,然后再编写翻译成为.jasper档。

参考文献

[1]
JasperReport在线教程.

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

[3] JasperReport API.

参考文献

[1]
JasperReport在线教程.

[2] JasperReports
报表的费用流程.

[3] JasperReport API.

  1. JasperReport介绍 贾斯帕Report
    是一个开源的Java报表引擎,它不像任何的表格工具,例如Crys…

       
exportReportToHtmlFile:导出HTML文件,同上

JasperReports是三个基于Java的开源报表工具,它能够在Java环境下像其余IDE报表工具一样来构建报表。JasperReports
支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是现阶段Java开发者最常用的表格工具。

4. 连锁兑现类

    在JasperReport的开发流程中,首要涉嫌上面包车型地铁那多少个类:

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

    这几个类能够在JasperReport类库内置的XML解析器对XML report
design实行辨析处理以往得到\[2\]。其对应与报表模板文件在内存中的情势,即*.jrxml文件。

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

    这一个类的实例包括了3个通过编译的report
design对象。生成它的机会是对报表编写翻译之后,但从没对其填入数据的时候。编译进度中,贾斯帕Report供给生成贰个临时的类公事,用以保存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解释为贰个法定的U奥迪Q5L,假如条分缕析失利,函数将认为所提供的location是硬盘上的一个文件名,并将准备读取它。要是在内定地址没找到文件,它将通过classpath定位3个相应于该location的财富,全部努力退步之后,将抛出尤其。

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

   
这是一个与编写翻译有关的类,利用它提供的一对编译方法,允许大家将3个报表设计文书档案(*.jrxml文件)编写翻译成一个二进制文件(*.jasper文件)。其它,它也足以直接将net.sf.jasperreports.engine.design.贾斯帕Design(*.jrxml文件在内部存款和储蓄器中的格局)对象编写翻译成net.sf.jasperreports.engine.JasperReport对象。

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

   
那一个类用来贯彻报表的数据填充。报表填写正是为报表的数量查询提供数据库连接,给报表的参数设置值等。填充以前是*.jasper文件,经过填充后就改为了*.jrprint文件–那是3个可兆示只怕可导出成报表的文件。那些类提供了重重办法来经受各类类型的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、QX56TF、TXT和其它的格式。JRXlsExporter、JENCOREPdfExporter、J本田UR-VXmlExporter、J大切诺基CsvExporter、JKugaHtmlExporter、J大切诺基TextExporter、JR福睿斯tfExporter。

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

   
这几个类能够从来将*.jasper文件导出成种种格式的表格文件,有时候在报表填写进程中我们不指望生成人中学间的net.sf.jasperreports.engine.JasperPrint对象,而一贯扭转我们所急需的文书档案格式,例如:PDF或HTML。

1. JasperReport介绍

    JasperReport
是叁个开源的Java报表引擎,它不像别的的表格工具,例如Crystal报表是基于Java的,没有协调的表明式语法。贾斯帕Reports有提供丰盛的始末到显示器上,到打字与印刷机,或转换来PDF,HTML,XLS,锐界TF,ODT,CSV,TXT和XML文件的能力。JasperReports是三个Java类库,必要安放到Java应用程序中。JasperReport的表征如下:

     12. 
JRCsvDataSource:CSV数据源

澳门金沙国际 2

5. 报表数据源

   
Jasper报表引擎获得来自数据源的数目,可以从数据库,XML文件,对象数组和集合中的对象来得到。后面大家介绍了接纳JasperFillManager来落成报表的数额填充,具体是由fillReportXXX()方法取得数据源进行填写。

(1)JDBC数据源

   
JLANDResultSetDataSource类关联入三个java.sql.ResultSet对象。那是当报表数量从关周密据库中领到最常用的数据源达成。假使选择java.sql.Connection传递给引擎,它首先实施相关的查询,并将该再次回到java.sql.ResultSet中的对象在三个J索罗德ResultSetDataSource实例。

(2)JavaBean数据源

   
JRBeanArrayDataSource类和JRBeanCollectionDataSource类完结了足以分级包装的JavaBean对象的数组或集合。数组或集合中的各个对象都将被视为对那体系型的数据源中的三个笔录。3个一定的JavaBean属性和对应的表格字段之间的映射是透过命名约定进行。报表字段的称号必须是一律的所钦定的JavaBeans的正统JavaBean属性的称呼。

(3)基于Map数据源

   
父级应用程序已经储存在内部存款和储蓄器中的java.util.Map对象提供填充数据的落到实处类J凯雷德MapArrayDataSource和JOdysseyMapCollectionDataSource非凡有效。被装进的数组或集合中的各个映射对象被认为是数据源中的1个虚拟的笔录,每一个报表字段的值从映射中利用报表字段名作为键提取。

(4)TableModel的数据源

   
许多客户端应用程序的数量以表格格局显得。在无数利用中常见的急需是同意用户打字与印刷该表格情势的告诉。实现类J中华VTableModelDataSource使生成的报表格式的Swing应用程序报告的天职。那个类包装了叁个javax.swing.table.TableModel对象。列在包装的TableModel对象足以因此她们的名字或他们的依照0索引来访问。

(5)XML数据源

   
类J景逸SUVXmlDataSource是依照DOM,它应用XPath表明式来选用XML文书档案数据的数据源的贯彻。
XML数据源中的记录是因而XPath表明式选用的节点成分表示。字段值是由各种记录使用由字段描述(J奥德赛XML<田野Description>成分)所提供的XPath表明式检索。

(6)CSV数据来源于

    J中华VCsvDataSource
代表了从结构化文本文件中寻觅其数据的数据源的兑现,通常为CSV。字段值是正值使用他们的列索引检索。

(7)XLS数据来源

    J本田UR-VXlsDataSource
代表其寻找的Excel文件的数指标数据源的达成。报表字段映射为这么些数据源的完成也是基于字段列索引。

(8)空数据出自

   
类JREmptyDataSource,模拟与其间虚拟空的笔录给定数据的数据源。它是由用户界面包车型大巴工具来提供基本的报表预览成效,或在特出报告模板,或用于测试和调试目标。

   

到此截止,JasperReport报表开发的凡事流程和促成原理已经介绍完了,在掌握了那个之后,后边推行起来心里就要理解部分。

4. 连锁落实类

    在JasperReport的支出流程中,首要涉嫌上边的那多少个类:

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

    那个类能够在贾斯帕Report类库内置的XML解析器对XML report
design进行辨析处理今后获得\[2\]。其对应与报表模板文件在内部存储器中的格局,即*.jrxml文件。

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

    这些类的实例包蕴了3个通过编写翻译的report
design对象。生成它的机遇是对报表编写翻译之后,但未曾对其填入数据的时候。编写翻译进度中,JasperReport须求生成1个近来的类公事,用以保存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、UGL450Ls、intput
stream等。那么些类最令人感兴趣的函数当属loadOnjectFromLocation(String
location)\[3\]。当用户采取这几个类从钦定地方装载对象的时候,该函数将第①将location解释为3个合法的U卡宴L,借使条分缕析失利,函数将认为所提供的location是硬盘上的3个文本名,并将准备读取它。如若在钦点地方没找到文件,它将通过classpath定位多少个应和于该location的能源,全部努力战败未来,将抛出尤其。

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

   
那是多个与编写翻译有关的类,利用它提供的一些编写翻译方法,允许大家将1个表格设计文书档案(*.jrxml文件)编写翻译成三个二进制文件(*.jasper文件)。别的,它也得以平素将net.sf.jasperreports.engine.design.贾斯帕Design(*.jrxml文件在内部存款和储蓄器中的情势)对象编写翻译成net.sf.jasperreports.engine.JasperReport对象。

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

   
这一个类用来达成报表的多少填充。报表填写正是为报表的多寡查询提供数据库连接,给报表的参数设置值等。填充此前是*.jasper文件,经过填充后就成为了*.jrprint文件–那是1个可兆示可能可导出成报表的文书。这几个类提供了无数方法来接受各体系型的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、帕杰罗TF、TXT和其余的格式。J兰德酷路泽XlsExporter、J本田UR-VPdfExporter、JLacrosseXmlExporter、J本田CR-VCsvExporter、JPAJEROHtmlExporter、JPAJEROTextExporter、J索罗德揽胜tfExporter。

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

   
那一个类能够一向将*.jasper文件导出成各个格式的报表文件,有时候在报表填写进程中我们不希望生成人中学间的net.sf.jasperreports.engine.JasperPrint对象,而直白生成大家所急需的文档格式,例如:PDF或HTML。

     13. 
JRAbstractTextDataSource:抽象文本数据源

澳门金沙国际 3

3. 实现原理

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

 

澳门金沙国际 4

    开发流程如下:

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

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

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

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

5. 报表数据源

   
Jasper报表引擎得到来自数据源的数码,能够从数据库,XML文件,对象数组和集聚中的对象来赢得。前边我们介绍了运用JasperFillManager来达成报表的多少填充,具体是由fillReportXXX()方法取得数据源举办填空。

(1)JDBC数据源

   
J君越ResultSetDataSource类关联入3个java.sql.ResultSet对象。那是当报表数量从关周密据库中提取最常用的数据源达成。借使选择java.sql.Connection传递给引擎,它首先实施相关的查询,并将该重返java.sql.ResultSet中的对象在2个J福特ExplorerResultSetDataSource实例。

(2)JavaBean数据源

   
JRBeanArrayDataSource类和JRBeanCollectionDataSource类完毕了足以独家包装的JavaBean对象的数组或集合。数组或集合中的每一种对象都将被视为对那体系型的数据源中的二个笔录。三个特定的JavaBean属性和相应的表格字段之间的炫耀是因此命名约定举办。报表字段的名称必须是相同的所钦赐的JavaBeans的正规JavaBean属性的名目。

澳门金沙国际,(3)基于Map数据源

   
父级应用程序已经储存在内部存款和储蓄器中的java.util.Map对象提供填充数据的落实类J翼虎MapArrayDataSource和J奥迪Q3MapCollectionDataSource相当管用。被包裹的数组或集合中的每种映射对象被认为是数据源中的贰个虚构的记录,各样报表字段的值从映射中选用报表字段名作为键提取。

(4)TableModel的数据源

   
许多客户端应用程序的数码以表格方式展现。在广大利用中广泛的需若是允许用户打字与印刷该表格格局的告诉。实现类J奥迪Q3TableModelDataSource使生成的表格格式的Swing应用程序报告的天职。那几个类包装了一个javax.swing.table.TableModel对象。列在卷入的TableModel对象足以通过他们的名字或他们的依据0索引来访问。

(5)XML数据源

   
类JLacrosseXmlDataSource是依照DOM,它利用XPath说明式来摘取XML文档数据的数据源的落到实处。
XML数据源中的记录是通过XPath表明式选拔的节点成分表示。字段值是由每种记录使用由字段描述(JCR-VXML<田野(field)Description>成分)所提供的XPath表明式检索。

(6)CSV数据来源于

    JHighlanderCsvDataSource
代表了从结构化文本文件中寻觅其数额的数据源的兑现,平日为CSV。字段值是正值采纳他们的列索引检索。

(7)XLS数据来源

    J福睿斯XlsDataSource
代表其招来的Excel文件的数码的数据源的达成。报表字段映射为那些数据源的实现也是根据字段列索引。

(8)空数据出自

   
类JREmptyDataSource,模拟与中间虚拟空的笔录给定数据的数据源。它是由用户界面包车型客车工具来提供基本的表格预览作用,或在特殊报告模板,或用来测试和调节指标。

   

到此为止,JasperReport报表开发的凡事流程和促成原理已经介绍完了,在明白了那些之后,后边推行起来心里就要通晓部分。

      6.   
J昂科雷ResultSetDataSource:数据源结果集,实现JTiguanDataSource的类,此外它还增添了1个属性resultSet结果集和
columnIndexMap列索引Map;首要的点子有getColumnIndex:获取列索引,参数名称filedName,再次来到索引值

JasperReports是世界上最盛行的开源报告引擎。它是一心用Java编写的,它是能够运用的多寡来自别的项指标数据源,并生成像素级的文档,能够查看、打印或导出在各类文书档案格式,包蕴HTML、PDF、Excel、OpenOffice和doc。

2. 费用流程

   
JasperReport完全由Java编写,能够用来在种种Java应用程序,包罗J2EE,Web应用程序中变化动态内容。它根本指标是帮衬生成面向页面包车型地铁、准备打字与印刷的文书档案。上边包车型地铁流程图描述了三个非凡的报表开发的做事流程。

 澳门金沙国际 5

    如上海教室所示,JasperReport报表开发分为多个阶段:

(1)设计报表

   
那一个等级是创制jrxml文件,该文件是带有报表布局定义的XML文书档案,能够应用JasperSoft
Studio或iReport那三种可视化开源开发工具来创建。

(2)编写翻译报表

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

(3)执行报表

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

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

   
贾斯帕Report提供了种种方式的导出格式,如:HTML,PDF,Excel等。该阶段能够导出要求的报表格式。

3. 实现原理

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

 

澳门金沙国际 6

    开发流程如下:

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

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

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

(4)使用导出管理器JasperExportManager只怕各样格式的文书导出器J冠道XxxExporter将*.jrprint文件导出成各个格式的报表文件。也能够动用JHighlanderViewer工具类来直接浏览报表。也得以选择打字与印刷管理器JasperPrintManager来打字与印刷表格。

5.   
JTiguanRewindableDataSource:定义1个方可往回查看记录的主意的接口,首要措施是moveFirst移动到第贰行,是JavaBean和TableModel等数据源的上代。

JasperReport报表开发(一)–原理介绍,jasperreport报表

        
printReportToPdfFile:把报表导出成PDF文件,然后本身打字与印刷;

        
printReport:打字与印刷表格,多态方法,同JasperPrintManager

       
exportReportToXmlFile:导出XML文件,同上

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图