原理介绍,JasperReport报表开发

by admin on 2019年2月19日

1. JasperReport介绍

    JasperReport
是1个开源的Java报表引擎,它不像其他的报表工具,例如Crystal报表是基于Java的,没有团结的表明式语法。贾斯帕Reports有提供丰富的内容到屏幕上,到打印机,或转换来PDF,HTML,XLS,讴歌RDXTF,ODT,CSV,TXT和XML文件的能力。JasperReports是1个Java类库,要求停放到Java应用程序中。JasperReport的特点如下:

  • 负有灵活的报表布局;
  • 可以用文字或图表显示数据;
  • 开发人士可以透过多种主意提供数据;
  • 可以承受来自七个数据源的数目;
  • 能够变更水印(水印是这么的方法被停放在主图像的副图像);
  • 可以生成子报表;
  • 可以导出报表到各类格式的。

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

home88一必发 1

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

2. 支出流程

   
JasperReport完全由Java编写,可以用来在各类Java应用程序,蕴涵J2EE,Web应用程序中变化动态内容。它根本目的是协助生成面向页面的、准备打印的文档。上面的流程图描述了贰个博古通今的表格开发的劳作流程。

 home88一必发 2

    如上图所示,JasperReport报表开发分为多个等级:

(1)设计报表

   
那么些阶段是成立jrxml文件,该文件是包括报表布局定义的XML文档,可以应用JasperSoft
Studio或iReport那二种可视化开源开发工具来创制。

(2)编译报表

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

(3)执行报表

   
该手续是将应用程序中的数据填充在表格模板中,即jasper文件。这一阶段将会时有爆发jasper打印文件(*.jrprint),该文件可以用来打印或导出报表。

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

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

1. JasperReport介绍

    JasperReport
是三个开源的Java报表引擎,它不像其余的报表工具,例如Crystal报表是基于Java的,没有协调的表明式语法。JasperReports有提供丰硕的故事情节到显示器上,到打印机,或转换到PDF,HTML,XLS,奥迪Q7TF,ODT,CSV,TXT和XML文件的力量。JasperReports是三个Java类库,须要停放到Java应用程序中。JasperReport的天性如下:

  • 持有灵活的报表布局;
  • 可以用文字或图表显示数据;
  • 开发人士可以通过多样方法提供数据;
  • 可以承受来自几个数据源的数码;
  • 可以转变水印(水印是那般的措施被放置在主图像的副图像);
  • 原理介绍,JasperReport报表开发。可以生成子报表;
  • 可以导出报表到两种格式的。

1.   
贾斯帕FillManager:填充管理,首要的法门如下:

home88一必发 3

3. 贯彻原理

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

 

home88一必发 4

    开发流程如下:

(1)开发报表设计文本,约等于三个*.jrxml文件。

(2)使用JasperReports提供的贾斯帕CompileManager工具编译*.jrxml文件,编译后生成2个*原理介绍,JasperReport报表开发。.jasper文件。

(3)使用贾斯帕Reports提供的JasperFillManager工具填充编译后的*.jasper文件,填充后生成二个*.jrprint文件。

(4)使用导出管理器JasperExportManager大概种种格式的文件导出器JRXxxExporter将*.jrprint文件导出成各个格式的表格文件。也得以应用J卡宴Viewer工具类来平素浏览报表。也足以利用打印管理器JasperPrintManager来打印表格。

2. 支付流程

   
JasperReport完全由Java编写,可以用于在各类Java应用程序,包含J2EE,Web应用程序中变化动态内容。它紧要目的是协助生成面向页面的、准备打印的文档。上面的流程图描述了三个典型的报表开发的劳作流程。

 home88一必发 5

    如上图所示,JasperReport报表开发分为三个等级:

(1)设计报表

   
那几个等级是制造jrxml文件,该公文是富含报表布局定义的XML文档,能够运用JasperSoft
Studio或iReport这几种可视化开源开发工具来创制。

(2)编译报表

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

(3)执行报表

   
该手续是将应用程序中的数据填充在报表模板中,即jasper文件。这一等级将会发出jasper打印文件(*.jrprint),该公文可以用来打印或导出报表。

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

   
JasperReport提供了种种款式的导出格式,如:HTML,PDF,Excel等。该阶段可以导出要求的报表格式。

       
fillReport:填充报表,多态函数,重回值为JasperReport,参数为报表和表格参数Map,
参数Map里包罗Parameters、DataSource等,若是是从数据库取多少还要有connection参数;

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

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需求生成2个权且的类公事,用以保存report
表明式,如变量表达式、文本、图像表达式、组表明式等等。那么些权且的Java
Source
File是被动态编译的,编译器使用的是JDK中用来实行应用程序的编译器类(compiler
class)。即使tools.jar不在classpath中,编译进程将动用javac.exe来开展后台编译。编译后所得的字节码保存在JasperReport类中,用来在执行期填充数据和给说明式赋值。对应二进制报表文件在内存中的方式,也等于相应的*.jasper文件。

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

   
当3个报表已经装填好数据将来,那么些文档就以JasperPrint类的实例现身。那些类可以直接用JasperReport内置的viewer进行查看,也可以体系化到硬盘以备后用,恐怕发送到网上去。这几个类的实例是报表装填进程后的产物,它可以被JasperReport类库中的导出方法导出成各样流行的格式如PDF,HTML,XML等等。

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

   
装载器用于报表生成的各种紧要阶段如编译,填充等。用户和发动机都可以使用那么些类来装载所需的系列化对象如file、UTiggoLs、intput
stream等。那一个类最令人感兴趣的函数当属loadOnjectFromLocation(String
location)\[3\]。当用户使用那个类从钦定地址装载对象的时候,该函数将第二将location解释为二个官方的USportageL,假使条分缕析失败,函数将认为所提供的location是硬盘上的一个文本名,并将准备读取它。如若在指定地址没找到文件,它将因而classpath定位壹个相应于该location的能源,全体努力失败之后,将抛出尤其。

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

   
那是1个与编译有关的类,利用它提供的片段编译方法,允许大家将八个报表设计文档(*.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、汉兰达TF、TXT和其余的格式。J奥德赛XlsExporter、JRAV4PdfExporter、J兰德酷路泽XmlExporter、JPRADOCsvExporter、J福特ExplorerHtmlExporter、JLacrosseTextExporter、J宝马X3OdysseytfExporter。

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

   
那些类可以从来将*.jasper文件导出成种种格式的表格文件,有时候在报表填写进度中大家不希望生成中间的net.sf.jasperreports.engine.JasperPrint对象,而平昔生成大家所急需的文档格式,例如:PDF或HTML。

3. 落到实处原理

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

 

home88一必发 6

    开发流程如下:

(1)开发报表设计文本,相当于1个*.jrxml文件。

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

(3)使用JasperReports提供的贾斯帕FillManager工具填充编译后的*.jasper文件,填充后生成二个*.jrprint文件。

(4)使用导出管理器JasperExportManager或许各类格式的文本导出器JENVISIONXxxExporter将*.jrprint文件导出成各样格式的表格文件。也得以使用J牧马人Viewer工具类来平昔浏览报表。也足以应用打印管理器JasperPrintManager来打印表格。

       
fillReportToFile:填充报表生成文件,多态函数,无重回值,参数为源文件、目的文件和表格参数Map。

JasperReports是世界上最盛行的开源报告引擎。它是截然用Java编写的,它是能够运用的多寡出自其余项目标数据源,并生成像素级的文档,可以查阅、打印或导出在多种文档格式,包含HTML、PDF、Excel、OpenOffice和doc。

5. 报表数据源

   
Jasper报表引擎得到来自数据源的数目,可以从数据库,XML文件,对象数组和集合中的对象来赢得。前边大家介绍了运用JasperFillManager来完成报表的多少填充,具体是由fillReportXXX()方法获得数据源举行填写。

(1)JDBC数据源

   
J科雷傲ResultSetDataSource类关联入多少个java.sql.ResultSet对象。那是当报表数量从关周详据库中提取最常用的数据源完结。倘使采用java.sql.Connection传递给引擎,它首先实施有关的询问,并将该再次回到java.sql.ResultSet中的对象在3个JEvoqueResultSetDataSource实例。

(2)JavaBean数据源

   
JRBeanArrayDataSource类和JRBeanCollectionDataSource类完结了足以独家包装的JavaBean对象的数组或集合。数组或集合中的每种对象都将被视为对那种类型的数据源中的三个记录。一个一定的JavaBean属性和相应的表格字段之间的映射是通过命名约定举办。报表字段的称号必须是如出一辙的所钦点的JavaBeans的正规化JavaBean属性的称谓。

(3)基于Map数据源

   
父级应用程序已经储存在内存中的java.util.Map对象提供填充数据的贯彻类JPRADOMapArrayDataSource和JSportageMapCollectionDataSource万分有效。被装进的数组或集合中的每一种映射对象被认为是数据源中的二个虚拟的笔录,各种报表字段的值从映射中拔取报表字段名作为键提取。

(4)TableModel的数据源

   
许多客户端应用程序的数额以表格格局显得。在千千万万行使中广大的须要是同意用户打印该表格方式的告知。已毕类JOdysseyTableModelDataSource使生成的报表格式的Swing应用程序报告的任务。那么些类包装了3个javax.swing.table.TableModel对象。列在卷入的TableModel对象能够透过他们的名字或他们的依照0索引来访问。

(5)XML数据源

   
类J奥迪Q3XmlDataSource是依照DOM,它选用XPath表明式来抉择XML文档数据的数据源的落实。
XML数据源中的记录是因此X帕特h表明式接纳的节点成分表示。字段值是由每一种记录使用由字段描述(JPAJEROXML<fieldDescription>成分)所提供的XPath表明式检索。

(6)CSV数据来自

    J帕杰罗CsvDataSource
代表了从结构化文本文件中搜寻其数额的数据源的贯彻,平日为CSV。字段值是正值采用他们的列索引检索。

(7)XLS数据来自

    JTiguanXlsDataSource
代表其招来的Excel文件的数目的数据源的贯彻。报表字段映射为这些数据源的落实也是依据字段列索引。

(8)空数据来自

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

   

到此为止,JasperReport报表开发的100%流程和兑现原理已经介绍完了,在打听了那么些之后,前边推行起来心里就要精晓一些。

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进行查看,也可以体系化到硬盘以备后用,恐怕发送到网上去。那个类的实例是报表装填进程后的产物,它能够被贾斯帕Report类库中的导出方法导出成各样流行的格式如PDF,HTML,XML等等。

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

   
装载器用于报表生成的相继紧要阶段如编译,填充等。用户和引擎都得以行使这几个类来装载所需的种类化对象如file、U翼虎Ls、intput
stream等。这一个类最令人感兴趣的函数当属loadOnjectFromLocation(String
location)\[3\]。当用户使用这么些类从钦定地点装载对象的时候,该函数将首先将location解释为二个法定的U福特ExplorerL,假设条分缕析失利,函数将认为所提供的location是硬盘上的3个文件名,并将准备读取它。假使在钦点地址没找到文件,它将经过classpath定位多个对应于该location的财富,全体努力战败之后,将抛出11分。

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

   
这是多少个与编译有关的类,利用它提供的一部分编译方法,允许大家将2个表格设计文档(*.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、汉兰达TF、TXT和其他的格式。JavancierXlsExporter、J君越PdfExporter、JLANDXmlExporter、J途胜CsvExporter、J宝马X3HtmlExporter、J景逸SUVTextExporter、JENVISION翼虎tfExporter。

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

   
那么些类可以间接将*.jasper文件导出成各类格式的表格文件,有时候在报表填写进度中大家不期望生成中间的net.sf.jasperreports.engine.JasperPrint对象,而直白生成我们所需求的文档格式,例如:PDF或HTML。

    2.   
JasperExportManager:导出管理,首要形式如下:

home88一必发 7

参考文献

[1]
贾斯帕Report在线教程.

[home88一必发,2] 贾斯帕Reports
报表的成本流程.http://topmanopensource.iteye.com/blog/1866879

[3] JasperReport API.

5. 报表数据源

   
Jasper报表引擎获得来自数据源的数额,可以从数据库,XML文件,对象数组和集纳中的对象来博取。前边大家介绍了动用JasperFillManager来完结报表的数据填充,具体是由fillReportXXX()方法取得数据源举办填空。

(1)JDBC数据源

   
JRubiconResultSetDataSource类关联入贰个java.sql.ResultSet对象。这是当报表数量从关周全据库中领取最常用的数据源完毕。尽管运用java.sql.Connection传递给引擎,它首先实施有关的询问,并将该重返java.sql.ResultSet中的对象在三个J冠道ResultSetDataSource实例。

(2)JavaBean数据源

   
JRBeanArrayDataSource类和JRBeanCollectionDataSource类达成了可以独家包装的JavaBean对象的数组或集合。数组或集合中的各个对象都将被视为对那连串型的数据源中的一个笔录。一个特定的JavaBean属性和对应的报表字段之间的炫耀是透过命名约定进行。报表字段的名目必须是平等的所内定的JavaBeans的科班JavaBean属性的名号。

(3)基于Map数据源

   
父级应用程序已经储存在内存中的java.util.Map对象提供填充数据的落到实处类J本田CR-VMapArrayDataSource和J昂科威MapCollectionDataSource极度有效。被包裹的数组或集合中的每一种映射对象被认为是数据源中的2个虚构的记录,每种报表字段的值从映射中选用报表字段名作为键提取。

(4)TableModel的数据源

   
许多客户端应用程序的数额以表格格局显得。在许多使用中普遍的急需是同意用户打印该表格情势的报告。达成类J帕杰罗TableModelDataSource使生成的报表格式的Swing应用程序报告的天职。那些类包装了三个javax.swing.table.TableModel对象。列在卷入的TableModel对象足以通过他们的名字或他们的按照0索引来访问。

(5)XML数据源

   
类J本田CR-VXmlDataSource是根据DOM,它利用XPath表达式来挑选XML文档数据的数据源的落成。
XML数据源中的记录是经过X帕特h表明式采纳的节点成分表示。字段值是由各个记录使用由字段描述(JCRUISERXML<fieldDescription>元素)所提供的XPath表明式检索。

(6)CSV数据来源

    J卡宴CsvDataSource
代表了从结构化文本文件中检索其数额的数据源的完毕,常常为CSV。字段值是正值使用他们的列索引检索。

(7)XLS数据来源

    J汉兰达XlsDataSource
代表其寻找的Excel文件的数码的数据源的落成。报表字段映射为这几个数据源的兑现也是基于字段列索引。

(8)空数据来源于

   
类JREmptyDataSource,模拟与其中虚拟空的笔录给定数据的数据源。它是由用户界面的工具来提供基本的报表预览功用,或在卓殊报告模板,或用来测试和调剂目的。

   

到此为止,JasperReport报表开发的一体工艺流程和促成原理已经介绍完了,在摸底了那些之后,后边推行起来心里就要精通一些。

       
 exportReportToPdfFile:导出PDF文件,多态函数,提供三种方式:从源文件导出到目标文件、从JasperPrint导出到目标文件、从源文件流导出目的文件,假使枚举的话有9种艺术,无再次来到值。

参考文献

[1]
贾斯帕Report在线教程.

[2] JasperReports
报表的付出流程.

[3] JasperReport API.

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

       
exportReportToHtmlFile:导出HTML文件,同上

       
exportReportToXmlFile:导出XML文件,同上

     3.   
贾斯帕PrintManager:打印管理,主要措施如下:

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

        
printReport:直接打印表格,多态函数,提供文件名、文件流或JasperReport直接开行打印,再次回到值true/false;

        
printPages:同printReport,但参数扩充了页数选用。

      4.   
贾斯帕CompileManager:编译管理,把.jrxml文件编译成.jasper文件,首要行使的艺术唯有三个,compileReportToFile:多态函数,参数.jrxml文件名恐怕JasperDesign、InputStream和输
出.jasper文件名

5.   
J卡宴RewindableDataSource:定义3个可以后回查看记录的点子的接口,主要形式是moveFirst移动到第二行,是JavaBean和TableModel等数据源的祖宗。

      6.   
J科雷傲ResultSetDataSource:数据源结果集,落成J奥迪Q3DataSource的类,其它它还扩大了一个属性resultSet结果集和
columnIndexMap列索引Map;主要的法子有getColumnIndex:获取列索引,参数名称filedName,重临索引值

      7.   
JRAbstractExporter:导出的抽象类,那里将引出导出的其他格式接济包含常用的Excel、CSV等,详细达成请看:net.sf.jasperreports.engine.export命名空间。

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

     9.  JasperPrint:定义贾斯帕Print对象,首要形式有getPages获取打印页数。

     10. 
JasperManager:通用管理器,紧要方式如下:

        
printReport:打印表格,多态方法,同贾斯帕PrintManager

        
fillReport:填充报表,多态方法,同JasperFillManager

        
loadReport:装载报表,多态方法,参数为报表名称或InputStream,再次回到值为JasperReport,loadPrint同此方法

        
runReportToPdf:运营报表,多态方法,参数为jasperReport、parameters、jrDataSource,再次回到报表字节流byte[]。

     11. 
JSportageHibernateAbstractDataSource:Hibernate抽象数据源类,定义系统帮衬Hibernate数据源格式。

     12. 
JRCsvDataSource:CSV数据源

     13. 
JRAbstractTextDataSource:抽象文本数据源

     14. 
JRXmlDataSource:Xml数据源。继承自JRAbstractTextDataSource

     15. 
JRAbstractBeanDataSource:JavaBean抽象数据源

     16. 
JRBeanCollectionDataSource:Bean集合数据源,继承自JRAbstractBeanDataSource

     17. 
JRBeanArrayDataSource:Bean数组数据源,继承自JRAbstractBeanDataSource

    
18.J昂科雷TableModelDataSource:表模型数据源,必要定义表的列和表格的field对应提到。

PDF报表导入到本地 

        try {
            JDBCConnection db = new JDBCConnection();
            //报表jasper文件路径
            String jasperSource="H:/jasperreport/lineUser.jasper";

            Map<String, Object> param=new HashMap<String, Object>();

            param.put("id", 1);// 传递参数(参数类型);
            //param.put("sql", "sql");*/ //亦可把整条sql语句作为参数

            //标准流程:生成中间的print对象,然后再导出成其他格式。
            //装载对象
            JasperReport report = (JasperReport) JRLoader
.loadObjectFromLocation(jasperSource);
            //填充数据
            JasperPrint print = JasperFillManager.fillReport(report,param, db
                    .getConnection());
            //导出成pdf(需要包含iTextAsian.jar包);
            //直接将装填过程生成的文档导出到pdf格式
            JasperExportManager.exportReportToPdfFile(print, "H:/jasperreport/line.pdf");
        } catch (JRException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

发表评论

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

网站地图xml地图