JasperReports的開(kāi)發(fā)流程
1. 開(kāi)發(fā)報(bào)表設(shè)計(jì)文件,也就是一個(gè)*.jrxml文件。
2. 使用JasperReports提供的JasperCompileManager工具編譯*.jrxml文件,編譯后生成一個(gè)*.jasper文件。
3. 使用JasperReports提供的JasperFillManager工具填充編譯后的*.jasper文件,填充后生成一個(gè)*.jrprint文件。
4. 使用導(dǎo)出管理器JasperExportManager或者各種格式的文件導(dǎo)出器JRXxxExporter將*.jrprint文件導(dǎo)出成各種格式的報(bào)表文件。也可以使用JRViewer工具類(lèi)來(lái)直接瀏覽報(bào)表。也可以使用打印管理器JasperPrintManager來(lái)打印報(bào)表。
?
在JasperReports開(kāi)發(fā)過(guò)程中,報(bào)表源文件開(kāi)各種格式的報(bào)表文件要經(jīng)過(guò)下圖所示的過(guò)程:
在JasperReports的開(kāi)發(fā)流程中,JasperReports共涉及以下幾個(gè)類(lèi):
?
net.sf.jasperreports.engine.design.JasperDesign
對(duì)應(yīng)報(bào)表設(shè)計(jì)文件在內(nèi)存中的形式,也就是對(duì)應(yīng)的*.jrxml文件。
?
net.sf.jasperreports .engine.JasperReport
對(duì)應(yīng)二進(jìn)制報(bào)表文件在內(nèi)存中的形式,也就是對(duì)應(yīng)的*.jasper文件。
net.sf.jasperreports . engine.JasperPrint
對(duì)應(yīng)可顯示報(bào)表設(shè)計(jì)文件在內(nèi)存中的形式,也就是對(duì)應(yīng)的*.jrprint文件。這時(shí)可以通過(guò)JasperReports內(nèi)建的報(bào)表查看器直接使用,也可以序列化后存儲(chǔ)到磁盤(pán)上以后使用,更甚于通過(guò)網(wǎng)絡(luò)發(fā)送給他處使用。
net.sf.jasperreports.engine.xml.JRXmlLoader
當(dāng)調(diào)用這個(gè)方法來(lái)載入一個(gè)對(duì)象時(shí),程序會(huì)先通過(guò)一個(gè)有效的URL來(lái)解析路徑。如果失敗了,程序就會(huì)認(rèn)為這是一個(gè)文件路徑并且嘗試去讀取。如果這個(gè)文件也沒(méi)有被發(fā)現(xiàn),程序就會(huì)嘗試在classpath里尋找能夠匹配的資源。如果這也失敗了,只好拋出異常。
?
- JasperDesign design = JRXmlLoader.load(File file);
- JasperDesign design = JRXmlLoader.load(InputStreaminputStream);
- JasperDesign design = JRXmlLoader.load(String sourceFileName);
JasperDesign design = JRXmlLoader.load(File file); JasperDesign design = JRXmlLoader.load(InputStreaminputStream); JasperDesign design = JRXmlLoader.load(String sourceFileName);
?
net.sf.jasperreports
.
engine.JasperCompileManager
這是一個(gè)與編譯有關(guān)的類(lèi),利用它提供的一些編譯方法,允許我們將一個(gè)報(bào)表設(shè)計(jì)文檔(*.jrxml文件)編譯成一個(gè)二進(jìn)制文件(*.jasper文件)。此外,它也可以直接將net.sf.jasperreports.engine.design.JasperDesign(* .jrxml文件 在內(nèi)存中的形式)對(duì)象編譯成net.sf.jasperreports.engine.JasperReport對(duì)象。
?
- JasperCompileManager.compileReport(InputStream inputStream); return JasperReport
- JasperCompileManager.compileReport(JasperDesign jasperDesign); return JasperReport
- JasperCompileManager.compileReport(String sourceFileName); return JasperReport
- JasperCompileManager.compileReportToFile(JasperDesign jasperDesign, String destFileName);
- JasperCompileManager.compileReportToFile(String sourceFileName);
- JasperCompileManager.compileReportToFile(String sourceFileName, String destFileName).
- JasperCompileManager.compileReportToStream(InputStream inputStream, OutputStream outputStream);
- JasperCompileManager.compileReportToStream(JasperDesign jasperDesign, OutputStream outputStream);
JasperCompileManager.compileReport(InputStream inputStream); return JasperReport JasperCompileManager.compileReport(JasperDesign jasperDesign); return JasperReport JasperCompileManager.compileReport(String sourceFileName); return JasperReport JasperCompileManager.compileReportToFile(JasperDesign jasperDesign, String destFileName); JasperCompileManager.compileReportToFile(String sourceFileName); JasperCompileManager.compileReportToFile(String sourceFileName, String destFileName). JasperCompileManager.compileReportToStream(InputStream inputStream, OutputStream outputStream); JasperCompileManager.compileReportToStream(JasperDesign jasperDesign, OutputStream outputStream);
?
net.sf.jasperreports .engine.JasperFillManager
這個(gè)類(lèi)用于報(bào)表填充的。報(bào)表填充就是為報(bào)表的數(shù)據(jù)查詢(xún)提供數(shù)據(jù)庫(kù)連接,給報(bào)表的參數(shù)設(shè)置值等。填充之前是*.jasper文件,經(jīng)過(guò)填充后就變成了*.jrprint文件--這是一個(gè)可顯示或者可導(dǎo)出成報(bào)表的文件。
參數(shù)的值通常通過(guò)一個(gè)java.util.Map對(duì)象來(lái)提供,這個(gè)Map對(duì)象的鍵是報(bào)表參數(shù)的名字。
數(shù)據(jù)源在不同的情況下可以通過(guò)兩種方式提供:通常情況下,它必須作為一個(gè)JRDataSource對(duì)象被提供。但是由于大多數(shù)的報(bào)表所填的值都是從關(guān)系數(shù)據(jù)庫(kù)取出來(lái)的。JasperReports有一個(gè)內(nèi)建的默認(rèn)行為,可以讓人們?cè)趫?bào)表設(shè)計(jì)的時(shí)候就指定一條SQL查詢(xún)語(yǔ)句。當(dāng)在運(yùn)行時(shí)填充報(bào)表的時(shí)候,執(zhí)行SQL查詢(xún)語(yǔ)句來(lái)獲得需要填充的值。在這種情況下,JasperReports需要的僅僅是一個(gè)java.sql.Connection對(duì)象,一個(gè)通常的數(shù)據(jù)源對(duì)象的實(shí)例。JasperReports需要使用這個(gè)連接對(duì)象通過(guò)JDBC連接到關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),并且執(zhí)行報(bào)表查詢(xún)。
在執(zhí)行了報(bào)表查詢(xún)后,JasperReports會(huì)自動(dòng)創(chuàng)建一個(gè)net.sf.jasperreports.engine.JRResultSetDataSource對(duì)象來(lái)封裝java.sql.ResultSet對(duì)象,并將它傳給普通的填充過(guò)程使用。
- JasperFillManager.fillReport(InputStream inputStream, Map parameters); return JasperPrint
- JasperFillManager.fillReport(InputStream inputStream, Map parameters, Connection connection);
- JasperFillManager.fillReport(InputStream inputStream, Map parameters, JRDataSource dataSource);
- JasperFillManager.fillReport(JasperReport jasperReport, Map parameters);
- JasperFillManager.fillReport(JasperReport jasperReport, Map parameters, Connection connection);
- JasperFillManager.fillReport(JasperReport jasperReport, Map parameters, JRDataSource dataSource);
- JasperFillManager.fillReport(String sourceFileName, Map parameters);
- JasperFillManager.fillReport(String sourceFileName, Map parameters, Connection connection);
- JasperFillManager.fillReport(String sourceFileName, Map parameters, JRDataSource dataSource);
- JasperFillManager.fillReportToFile(JasperReport jasperReport, String destFileName, Map parameters);
- JasperFillManager.fillReportToFile(JasperReport jasperReport, String destFileName, Map parameters, Connection connection);
- JasperFillManager.fillReportToFile(JasperReport jasperReport, String destFileName, Map parameters, JRDataSource datasource);
- JasperFillManager.fillReportToFile(String sourceFileName, Map parameters);
- JasperFillManager.fillReportToFile(String sourceFileName, Map parameters, Connection connection);
- JasperFillManager.fillReportToFile(String sourceFileName, Map parameters, JRDatasource dataSource);
- JasperFillManager.fillReportToFile(String sourceFileName, String destFileName, Map parameters);
- JasperFillManager.fillReportToFile(String sourceFileName, String destFileName, Map parameters, Connection connection);
- JasperFillManager.fillReportToFile(String sourceFileName, String destFileName, Map parameters, JRDataSource dataSource);
- JasperFillManager.fillReportToStream(InputStream inputStream, OutputStream outputStream, Map parameters);
- JasperFillManager.fillReportToStream(InputStream inputStream, OutputStream outputStream, Map parameters, Connection connection);
- JasperFillManager.fillReportToStream(InputStream inputStream, OutputStream outputStream, Map parameters, JRDataSource dataSource);
- JasperFillManager.fillReportToStream(JasperReport jasperReport, OutputStream outputStream, Map parameters);
- JasperFillManager.fillReportToStream(JasperReport jasperReport, OutputStream outputStream, Map parameters, Connection connection);
- JasperFillManager.fillReportToStream(JasperReport jasperReport, OutputStream outputStream, Map parameters, JRDataSource dataSource);
JasperFillManager.fillReport(InputStream inputStream, Map parameters); return JasperPrint JasperFillManager.fillReport(InputStream inputStream, Map parameters, Connection connection); JasperFillManager.fillReport(InputStream inputStream, Map parameters, JRDataSource dataSource); JasperFillManager.fillReport(JasperReport jasperReport, Map parameters); JasperFillManager.fillReport(JasperReport jasperReport, Map parameters, Connection connection); JasperFillManager.fillReport(JasperReport jasperReport, Map parameters, JRDataSource dataSource); JasperFillManager.fillReport(String sourceFileName, Map parameters); JasperFillManager.fillReport(String sourceFileName, Map parameters, Connection connection); JasperFillManager.fillReport(String sourceFileName, Map parameters, JRDataSource dataSource); JasperFillManager.fillReportToFile(JasperReport jasperReport, String destFileName, Map parameters); JasperFillManager.fillReportToFile(JasperReport jasperReport, String destFileName, Map parameters, Connection connection); JasperFillManager.fillReportToFile(JasperReport jasperReport, String destFileName, Map parameters, JRDataSource datasource); JasperFillManager.fillReportToFile(String sourceFileName, Map parameters); JasperFillManager.fillReportToFile(String sourceFileName, Map parameters, Connection connection); JasperFillManager.fillReportToFile(String sourceFileName, Map parameters, JRDatasource dataSource); JasperFillManager.fillReportToFile(String sourceFileName, String destFileName, Map parameters); JasperFillManager.fillReportToFile(String sourceFileName, String destFileName, Map parameters, Connection connection); JasperFillManager.fillReportToFile(String sourceFileName, String destFileName, Map parameters, JRDataSource dataSource); JasperFillManager.fillReportToStream(InputStream inputStream, OutputStream outputStream, Map parameters); JasperFillManager.fillReportToStream(InputStream inputStream, OutputStream outputStream, Map parameters, Connection connection); JasperFillManager.fillReportToStream(InputStream inputStream, OutputStream outputStream, Map parameters, JRDataSource dataSource); JasperFillManager.fillReportToStream(JasperReport jasperReport, OutputStream outputStream, Map parameters); JasperFillManager.fillReportToStream(JasperReport jasperReport, OutputStream outputStream, Map parameters, Connection connection); JasperFillManager.fillReportToStream(JasperReport jasperReport, OutputStream outputStream, Map parameters, JRDataSource dataSource);
?
net.sf.jasperreports . engine.JasperPrintManager
用于將一個(gè)*.jrprint文件完成打印。在JapserReports中,我們可以通過(guò)這個(gè)類(lèi)來(lái)打印報(bào)表,它包含了所有的打印功能。它提供了打印整個(gè)文檔或者部分文檔、顯不顯示打印對(duì)話(huà)框的方法。使用這個(gè)類(lèi)可以將JasperReports文檔的一頁(yè)作為一個(gè)java.awt.Image對(duì)象來(lái)顯示。
- JasperPrintManager.printPage(InputStream inputStream, int pageIndex, boolean withPrintDialog);
- JasperPrintManager.printPage(JasperPrint jasperPrint, int pageIndex, boolean withPrintDialog);
- JasperPrintManager.printPage(String sourceFileName, int pageIndex, boolean withPrintDialog);
- JasperPrintManager.printPages(InputStream inputStream, int firstPageIndex, int lastPageIndex, boolean withPrintDialog);
- JasperPrintManager.printPages(JasperPrint jasperPrint, int firstPageIndex, int lastPageIndex, boolean withPrintDialog);
- JasperPrintManager.printPages(String sourceFileName, int firstPageIndex, int lastPageIndex, boolean withPrintDialog);
- JasperPrintManager.printPageToImage(InputStream inputStream, int pageIndex, float zoom);
- JasperPrintManager.printPageToImage(JasperPrint jasperPrint, int pageIndex, float zoom);
- JasperPrintManager.printPageToImage(String sourceFileName, int pageIndex, float zoom);
- JasperPrintManager.printReport(InputStream inputStream, boolean withPrintDialog);
- JasperPrintManager.printReport(JasperPrint jasperPrint, boolean withPrintDialog);
- JasperPrintManager.printReport(String sourceFileName, boolean withPrintDialog);
- JasperPrintManager.printReportToPdf(JasperPrint jasperPrint);
- JasperPrintManager.printReportToPdfFile(JasperPrint jasperPrint, String destFileName);
- JasperPrintManager.printReportToPdfFile(String sourceFileName);
- JasperPrintManager.printReportToPdfFile(String sourceFileName, String destFileName);
- JasperPrintManager.printReportToPdfStream(InputStream inputStream, OutputStream outputStream);
- JasperPrintManager.printReportToPdfStream(JasperPrint jasperPrint, OutputStream outputStream);
- JasperPrintManager.printReportToXml(JasperPrint jasperPrint);
- JasperPrintManager.printReportToXmlFile(JasperPrint jasperPrint, String destFileName);
- JasperPrintManager.printReportToXmlFile(String sourceFileName);
- JasperPrintManager.printReportToXmlFile(String sourceFileName, String destFileName);
- JasperPrintManager.printReportToXmlStream(InputStream inputStream, OutputStream outputStream);
- JasperPrintManager.printReportToXmlStream(JasperPrint jasperPrint, OutputStream outputStream);
JasperPrintManager.printPage(InputStream inputStream, int pageIndex, boolean withPrintDialog); JasperPrintManager.printPage(JasperPrint jasperPrint, int pageIndex, boolean withPrintDialog); JasperPrintManager.printPage(String sourceFileName, int pageIndex, boolean withPrintDialog); JasperPrintManager.printPages(InputStream inputStream, int firstPageIndex, int lastPageIndex, boolean withPrintDialog); JasperPrintManager.printPages(JasperPrint jasperPrint, int firstPageIndex, int lastPageIndex, boolean withPrintDialog); JasperPrintManager.printPages(String sourceFileName, int firstPageIndex, int lastPageIndex, boolean withPrintDialog); JasperPrintManager.printPageToImage(InputStream inputStream, int pageIndex, float zoom); JasperPrintManager.printPageToImage(JasperPrint jasperPrint, int pageIndex, float zoom); JasperPrintManager.printPageToImage(String sourceFileName, int pageIndex, float zoom); JasperPrintManager.printReport(InputStream inputStream, boolean withPrintDialog); JasperPrintManager.printReport(JasperPrint jasperPrint, boolean withPrintDialog); JasperPrintManager.printReport(String sourceFileName, boolean withPrintDialog); JasperPrintManager.printReportToPdf(JasperPrint jasperPrint); JasperPrintManager.printReportToPdfFile(JasperPrint jasperPrint, String destFileName); JasperPrintManager.printReportToPdfFile(String sourceFileName); JasperPrintManager.printReportToPdfFile(String sourceFileName, String destFileName); JasperPrintManager.printReportToPdfStream(InputStream inputStream, OutputStream outputStream); JasperPrintManager.printReportToPdfStream(JasperPrint jasperPrint, OutputStream outputStream); JasperPrintManager.printReportToXml(JasperPrint jasperPrint); JasperPrintManager.printReportToXmlFile(JasperPrint jasperPrint, String destFileName); JasperPrintManager.printReportToXmlFile(String sourceFileName); JasperPrintManager.printReportToXmlFile(String sourceFileName, String destFileName); JasperPrintManager.printReportToXmlStream(InputStream inputStream, OutputStream outputStream); JasperPrintManager.printReportToXmlStream(JasperPrint jasperPrint, OutputStream outputStream);
?
net.sf.jasperreports . engine.JasperExportManager
這個(gè)管理類(lèi)對(duì)不同來(lái)源和不同去處(文件、輸入輸出流等)的數(shù)據(jù)提供不同的方法。 用于將可顯示的報(bào)表導(dǎo)出成各種格式的報(bào)表文件,例如PDF、HTML、XML和其他的格式。
- JasperExportManager.exportReportToHtmlFile(JasperPrint jasperPrint, String destFileName);
- JasperExportManager.exportReportToHtmlFile(String sourceFileName);
- JasperExportManager.exportReportToHtmlFile(String sourceFileName, String destFileName);
- JasperExportManager.exportReportToPdf(JasperPrint jasperPrint);
- JasperExportManager.exportReportToPdfFile(JasperPrint jasperPrint, String destFileName);
- JasperExportManager.exportReportToPdfFile(String sourceFileName);
- JasperExportManager.exportReportToPdfFile(String sourceFileName, String destFileName);
- JasperExportManager.exportReportToPdfStream(InputStream inputStream, OutputStream outputStream);
- JasperExportManager.exportReportToPdfStream(JasperPrint jasperPrint, OutputStream outputStream);
- JasperExportManager.exportReportToXml(JasperPrint jasperPrint);
- JasperExportManager.exportReportToXmlFile(JasperPrint jasperPrint, String destFileName, boolean isEmbeddingImages);
- JasperExportManager.exportReportToXmlFile(String sourceFileName, boolean isEmbeddingImages);
- JasperExportManager.exportReportToXmlFile(String sourceFileName, String destFileName, boolean isEmbeddingImages);
- JasperExportManager.exportReportToXmlStream(InputStream inputStream, OutputStream outputStream);
- JasperExportManager.exportReportToXmlStream(JasperPrint jasperPrint, OutputStream outputStream);
JasperExportManager.exportReportToHtmlFile(JasperPrint jasperPrint, String destFileName); JasperExportManager.exportReportToHtmlFile(String sourceFileName); JasperExportManager.exportReportToHtmlFile(String sourceFileName, String destFileName); JasperExportManager.exportReportToPdf(JasperPrint jasperPrint); JasperExportManager.exportReportToPdfFile(JasperPrint jasperPrint, String destFileName); JasperExportManager.exportReportToPdfFile(String sourceFileName); JasperExportManager.exportReportToPdfFile(String sourceFileName, String destFileName); JasperExportManager.exportReportToPdfStream(InputStream inputStream, OutputStream outputStream); JasperExportManager.exportReportToPdfStream(JasperPrint jasperPrint, OutputStream outputStream); JasperExportManager.exportReportToXml(JasperPrint jasperPrint); JasperExportManager.exportReportToXmlFile(JasperPrint jasperPrint, String destFileName, boolean isEmbeddingImages); JasperExportManager.exportReportToXmlFile(String sourceFileName, boolean isEmbeddingImages); JasperExportManager.exportReportToXmlFile(String sourceFileName, String destFileName, boolean isEmbeddingImages); JasperExportManager.exportReportToXmlStream(InputStream inputStream, OutputStream outputStream); JasperExportManager.exportReportToXmlStream(JasperPrint jasperPrint, OutputStream outputStream);
?
net.sf.jasperreports.engine.export.JRXxxExporter
這是一系列的文件導(dǎo)出器,它們用于將*.jrprint文件導(dǎo)出成對(duì)應(yīng)格式的報(bào)表文件。 例如 XSL 、PDF、HTML、XML、CSV、RTF、TXT和其他的格式。 JRXlsExporter、JRPdfExporter、JRXmlExporter、JRCsvExporter、JRHtmlExporter、JRTextExporter、JRRtfExporter
?
- eg: JRXlsExporter exporter = new JRXlsExporter();
- exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
- exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "reports/StretchReport.xls" );
- exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
- exporter.exportReport();
eg: JRXlsExporter exporter = new JRXlsExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "reports/StretchReport.xls"); exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE); exporter.exportReport();
?
net.sf.jasperreports . engine.JasperRunManager
這個(gè)類(lèi)可以直接將*.jasper文件導(dǎo)出成各種格式的報(bào)表文件,有時(shí)候在報(bào)表填充過(guò)程中我們不希望生成中間的net.sf.jasperreports.engine.JasperPrint對(duì)象,而直接生成我們所需要的文檔格式,例如:PDF或HTML。
- JasperRunManager.runReportToHtmlFile(String sourceFileName, Map parameters);
- JasperRunManager.runReportToHtmlFile(String sourceFileName, Map parameters, Connection conn);
- JasperRunManager.runReportToHtmlFile(String sourceFileName, Map parameters, JRDataSource jrDataSource);
- JasperRunManager.runReportToHtmlFile(String sourceFileName, String destFileName, Map parameters);
- JasperRunManager.runReportToHtmlFile(String sourceFileName, String destFileName, Map parameters, Connection conn);
- JasperRunManager.runReportToHtmlFile(String sourceFileName, String destFileName, Map parameters, JRDataSource jrDataSource);
- JasperRunManager.runReportToPdf(InputStream inputStream, Map parameters);
- JasperRunManager.runReportToPdf(InputStream inputStream, Map parameters, Connection conn);
- JasperRunManager.runReportToPdf(InputStream inputStream, Map parameters, JRDataSource jrDataSource);
- JasperRunManager.runReportToPdf(JasperReport jasperReport, Map parameters);
- JasperRunManager.runReportToPdf(JasperReport jasperReport, Map parameters, Connection conn);
- JasperRunManager.runReportToPdf(JasperReport jasperReport, Map parameters, JRDataSource jrDataSource);
- JasperRunManager.runReportToPdf(String sourceFileName, Map parameters);
- JasperRunManager.runReportToPdf(String sourceFileName, Map parameters, Connection conn);
- JasperRunManager.runReportToPdf(String sourceFileName, Map parameters, JRDataSource jrDataSource);
- JasperRunManager.runReportToPdfFile(String sourceFileName, Map parameters);
- JasperRunManager.runReportToPdfFile(String sourceFileName, Map parameters, Connection conn);
- JasperRunManager.runReportToPdfFile(String sourceFileName, Map parameters, JRDataSource jrDataSource);
- JasperRunManager.runReportToPdfFile(String sourceFileName, String destFileName, Map parameters);
- JasperRunManager.runReportToPdfFile(String sourceFileName, String destFileName, Map parameters, Connection conn);
- JasperRunManager.runReportToPdfFile(String sourceFileName, String destFileName, Map parameters, JRDataSource jrDataSource);
- JasperRunManager.runReportToPdfStream(InputStream inputStream, OutputStream outputStream, Map parameters);
- JasperRunManager.runReportToPdfStream(InputStream inputStream, OutputStream outputStream, Map parameters, Connection conn);
- JasperRunManager.runReportToPdfStream(InputStream inputStream, OutputStream outputStream, Map parameters, JRDataSource jrDataSource);
JasperRunManager.runReportToHtmlFile(String sourceFileName, Map parameters); JasperRunManager.runReportToHtmlFile(String sourceFileName, Map parameters, Connection conn); JasperRunManager.runReportToHtmlFile(String sourceFileName, Map parameters, JRDataSource jrDataSource); JasperRunManager.runReportToHtmlFile(String sourceFileName, String destFileName, Map parameters); JasperRunManager.runReportToHtmlFile(String sourceFileName, String destFileName, Map parameters, Connection conn); JasperRunManager.runReportToHtmlFile(String sourceFileName, String destFileName, Map parameters, JRDataSource jrDataSource); JasperRunManager.runReportToPdf(InputStream inputStream, Map parameters); JasperRunManager.runReportToPdf(InputStream inputStream, Map parameters, Connection conn); JasperRunManager.runReportToPdf(InputStream inputStream, Map parameters, JRDataSource jrDataSource); JasperRunManager.runReportToPdf(JasperReport jasperReport, Map parameters); JasperRunManager.runReportToPdf(JasperReport jasperReport, Map parameters, Connection conn); JasperRunManager.runReportToPdf(JasperReport jasperReport, Map parameters, JRDataSource jrDataSource); JasperRunManager.runReportToPdf(String sourceFileName, Map parameters); JasperRunManager.runReportToPdf(String sourceFileName, Map parameters, Connection conn); JasperRunManager.runReportToPdf(String sourceFileName, Map parameters, JRDataSource jrDataSource); JasperRunManager.runReportToPdfFile(String sourceFileName, Map parameters); JasperRunManager.runReportToPdfFile(String sourceFileName, Map parameters, Connection conn); JasperRunManager.runReportToPdfFile(String sourceFileName, Map parameters, JRDataSource jrDataSource); JasperRunManager.runReportToPdfFile(String sourceFileName, String destFileName, Map parameters); JasperRunManager.runReportToPdfFile(String sourceFileName, String destFileName, Map parameters, Connection conn); JasperRunManager.runReportToPdfFile(String sourceFileName, String destFileName, Map parameters, JRDataSource jrDataSource); JasperRunManager.runReportToPdfStream(InputStream inputStream, OutputStream outputStream, Map parameters); JasperRunManager.runReportToPdfStream(InputStream inputStream, OutputStream outputStream, Map parameters, Connection conn); JasperRunManager.runReportToPdfStream(InputStream inputStream, OutputStream outputStream, Map parameters, JRDataSource jrDataSource);
?
net.sf.jasperreports .engine.JRDataSource
?
JasperReports在報(bào)表數(shù)據(jù)來(lái)源方面是具有高柔韌性的。人們可以使用任意的數(shù)據(jù)源,前提條件就是能夠提供一個(gè)這個(gè)接口的恰當(dāng)?shù)膶?shí)現(xiàn)。這樣報(bào)表引擎可以在填充報(bào)表時(shí)從數(shù)據(jù)源解析和檢索數(shù)據(jù)。
通常來(lái)說(shuō),如果一個(gè)報(bào)表填充了數(shù)據(jù),肯定有一個(gè)這個(gè)接口的實(shí)例被報(bào)表引擎提供或創(chuàng)建。
net.sf.jasperreports . engine.JREmptyDataSource
作為最簡(jiǎn)單的net.sf.jasperreports.engine.JRDataSource接口的實(shí)現(xiàn),這個(gè)類(lèi)可以在不希望顯示從數(shù)據(jù)源獲得的數(shù)據(jù),而只關(guān)心數(shù)據(jù)源的虛擬行數(shù)時(shí)在報(bào)表中使用。
在提供的例子里有不少在填充報(bào)表時(shí)用到了這個(gè)類(lèi)的實(shí)例,例如:fonts、images、shapes和unicode。這樣做是為了模擬一個(gè)有一條空記錄的數(shù)據(jù)源。
net.sf.jasperreports . engine.JRResultSetDataSource
這個(gè)類(lèi)是net.sf.jasperreports.engine.JRDataSource接口的一個(gè)默認(rèn)實(shí)現(xiàn)。由于大多數(shù)的報(bào)表都由關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)生成,JasperReports包含了一個(gè)封裝了java.sql.ResultSet對(duì)象的默認(rèn)實(shí)現(xiàn)。
這個(gè)類(lèi)有著明確的目的:在傳給報(bào)表填充測(cè)試之前封裝已經(jīng)載入的數(shù)據(jù)集。在執(zhí)行了通過(guò)JDBC的報(bào)表查詢(xún)后它會(huì)被用來(lái)封裝從數(shù)據(jù)庫(kù)獲得的數(shù)據(jù)。
net.sf.jasperreports . engine.data.JRTableModelDataSource
這個(gè)類(lèi)是net.sf.jasperreports.engine.JRDataSource接口的另外一個(gè)默認(rèn)實(shí)現(xiàn)。它封裝了javax.swing.table.TableModel對(duì)象。它可以在Java Swing應(yīng)用程序中通過(guò)已經(jīng)載入的屏幕表格的數(shù)據(jù)生成報(bào)表。
net.sf.jasperreports.engine.data. JRBeanCollectionDataSource
使用Bean作為數(shù)據(jù)源, JRBeanCollectionDataSource繼承JRAbstractBeanDataSource類(lèi),而JRAbstractBeanDataSource是一個(gè)抽象類(lèi)它間接的實(shí)現(xiàn)了JRDataSource這個(gè)接口,所以我們就可以不用自己去實(shí)現(xiàn)next()/getFieldValue()這兩個(gè)方法了
?
- eg:JRDataSource datesource = new JRBeanCollectionDataSource(list);
eg:JRDataSource datesource = new JRBeanCollectionDataSource(list);
?
net.sf.jasperreports.swing.JRViewer
這個(gè)類(lèi)和上面說(shuō)到的類(lèi)不大一樣,說(shuō)它是一個(gè)實(shí)用類(lèi)不如說(shuō)是一個(gè)顯示插件。它可以用在基于Swing的應(yīng)用程序里來(lái)顯示JasperReports生成的報(bào)表。
這個(gè)可視化組件并不能滿(mǎn)足每一個(gè)人。它被當(dāng)作一個(gè)例子組件被包含在主類(lèi)庫(kù)中,用來(lái)顯示核心打印功能可以在基于Swing的應(yīng)用程序里通過(guò)net.sf.jasperreports.engine.JasperPrintManager類(lèi)生成java.awt.Image對(duì)象來(lái)顯示報(bào)表。
如果想修改這個(gè)組件使其滿(mǎn)足應(yīng)用程序的需求,首選的方法是使用它的子類(lèi)。
- JRVierer jr = new JRViewer(InputStream inputStream, boolean isXML);
- JRVierer jr = new JRViewer(inputStream inputStream, boolean isXML, Locale locale);
- JRVierer jr = new JRViewer(inputStream inputStream, boolean isXML, Locale locale, ResourceBundle resBundle);
- JRVierer jr = new JRViewer(JasperPrint jrPrint);
- JRVierer jr = new JRViewer(JasperPrint jrPrint, Locale locale);
- JRVierer jr = new JRViewer(JasperPrint jrPrint, Locale locale, ResourceBundle resBundle);
- JRVierer jr = new JRViewer(String fileName, boolean isXML);
- JRVierer jr = new JRViewer(String fileName, boolean isXML, Locale locale);
- JRVierer jr = new JRViewer(String fileName, boolean isXML, Locale locale, ResourceBundle resBundle);
JRVierer jr = new JRViewer(InputStream inputStream, boolean isXML); JRVierer jr = new JRViewer(inputStream inputStream, boolean isXML, Locale locale); JRVierer jr = new JRViewer(inputStream inputStream, boolean isXML, Locale locale, ResourceBundle resBundle); JRVierer jr = new JRViewer(JasperPrint jrPrint); JRVierer jr = new JRViewer(JasperPrint jrPrint, Locale locale); JRVierer jr = new JRViewer(JasperPrint jrPrint, Locale locale, ResourceBundle resBundle); JRVierer jr = new JRViewer(String fileName, boolean isXML); JRVierer jr = new JRViewer(String fileName, boolean isXML, Locale locale); JRVierer jr = new JRViewer(String fileName, boolean isXML, Locale locale, ResourceBundle resBundle);
?
net.sf.jasperreports .view.JasperViewer
這也是一個(gè)以教學(xué)為目的的類(lèi)。它使用了net.sf.jasperreports.swing.JRViewer組件來(lái)顯示報(bào)表。它是一個(gè)簡(jiǎn)單的Java Swing應(yīng)用程序,可以裝載和顯示報(bào)表。它在提供的例子中被廣泛的使用,用來(lái)顯示生成的文檔。
net.sf.jasperreports .view.JasperDesignViewer
通常,一個(gè)使用JasperReports來(lái)生成報(bào)表的應(yīng)用程序如果使用了這個(gè)類(lèi)將不能運(yùn)行。這個(gè)類(lèi)可以在設(shè)計(jì)階段用來(lái)預(yù)覽報(bào)表模版。它被當(dāng)作一個(gè)用作可視化設(shè)計(jì)而使用的開(kāi)發(fā)工具提供。
net.sf.jasperreports . engine.JRAbstractScriptlet
腳本程序(Scriptlets)是JasperReports類(lèi)庫(kù)中一個(gè)非常強(qiáng)大的功能。它可以讓用戶(hù)自己編寫(xiě)在填充過(guò)程中可以被報(bào)表引擎執(zhí)行的代碼。用戶(hù)代碼可以在一個(gè)定義良好的片斷(例如:頁(yè)、列或者組)里操作報(bào)表數(shù)據(jù);為生成的文檔建立一個(gè)新的range。
net.sf.jasperreports . engine.JRDefaultScriptlet
這是net.sf.jasperreports.engine.JRAbstractScriptlet的一個(gè)便利的子類(lèi)。大多數(shù)時(shí)間用戶(hù)在使用腳本程序時(shí)會(huì)選擇這個(gè)類(lèi),這樣他們就不需要實(shí)現(xiàn)抽象類(lèi)里定義的所有抽象方法了。
?
附:Exporter常用參數(shù)說(shuō)明
- ? net.sf.jasperreports.engine.JRExporterParameter. JASPER_PRINT
- 這個(gè)參數(shù)是net.sf.jasperreports.engine.JasperPrint的對(duì)象,exporter在導(dǎo)出報(bào)表前會(huì)做檢測(cè)
- ? net.sf.jasperreports.engine.JRExporterParameter. JASPER_PRINT_LIST
- 這個(gè)參數(shù)是包含了n個(gè)net.sf.jasperreports.engine.JasperPrint對(duì)象的java.util.List,exporter在導(dǎo)出報(bào)表前會(huì)做檢測(cè)
- ? net.sf.jasperreports.engine.JRExporterParameter.INPUT_STREAM
- 這個(gè)參數(shù)是net.sf.jasperreports.engine.JasperPrint被序列化對(duì)象的輸入流,exporter在導(dǎo)出報(bào)表前會(huì)做檢測(cè)
- ? net.sf.jasperreports.engine.JRExporterParameter.INPUT_URL
- 這個(gè)參數(shù)是包含net.sf.jasperreports.engine.JasperPrint被序列化對(duì)象的URL,exporter在導(dǎo)出報(bào)表前會(huì)做檢測(cè)
- ? net.sf.jasperreports.engine.JRExporterParameter.INPUT_FILE_NAME
- 這個(gè)參數(shù)是存儲(chǔ)了net.sf.jasperreports.engine.JasperPrint被序列化對(duì)象的文件路徑,exporter在導(dǎo)出報(bào)表前會(huì)做檢測(cè)
- 注意:以上幾個(gè)參數(shù)不能全部為空
- ? net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_STRING_BUFFER
- 這個(gè)參數(shù)是java.lang.StringBuffer的對(duì)象,存儲(chǔ)已經(jīng)產(chǎn)生出的指定格式報(bào)表的內(nèi)容
- ? net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_WRITER
- 這個(gè)參數(shù)是java.io.Writer的對(duì)象,將指定格式報(bào)表的內(nèi)容發(fā)送到一個(gè)字符流,例如Servlet的PrintWriter
- ? net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_STREAM
- 這個(gè)參數(shù)是java.io.OutputStream的對(duì)象,將指定格式報(bào)表的內(nèi)容發(fā)送到一個(gè)輸出流,例如ServletOutputStream
- ? net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_FILE
- 這個(gè)參數(shù)是java.io.FILE的對(duì)象,將指定格式報(bào)表的內(nèi)容存儲(chǔ)到文件里面
- ? net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_FILE_NAME
- 這個(gè)參數(shù)是java.lang.String的對(duì)象,將指定格式報(bào)表的內(nèi)容存儲(chǔ)到文件里面
- ? net.sf.jasperreports.engine.JRExporterParameter.CHARACTER_ENCODING
- 這個(gè)參數(shù)是java.lang.String的對(duì)象,指定格式報(bào)表的內(nèi)容編碼
- ? net.sf.jasperreports.engine.JExcelApiExporterParameter.IS_FONT_SIZE_FIX_ENABLED
- 這個(gè)參數(shù)是java.lang.Boolean的對(duì)象,是否允許自動(dòng)修正Excel每個(gè)欄位的大小
- ? net.sf.jasperreports.engine.JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET
- 這個(gè)參數(shù)是java.lang.Boolean的對(duì)象,每一頁(yè)是否用一個(gè)Sheet
- ? net.sf.jasperreports.engine.JRXlsExporterParameter. IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS
- 這個(gè)參數(shù)是java.lang.Boolean的對(duì)象,是否移除行與行之間的空行
- ? net.sf.jasperreports.engine.JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND
- 這個(gè)參數(shù)是java.lang.Boolean的對(duì)象,頁(yè)面的背景是否為白的
- ? net.sf.jasperreports.engine.JRXlsExporterParameter.SHEET_NAMES
- 這個(gè)參數(shù)是java.lang.String的對(duì)象,Sheet的名字
- ? net.sf.jasperreports.engine.JRCsvExporterParameter.FIELD_DELIMITER
- 這個(gè)參數(shù)是java.lang.String的對(duì)象,欄位之間的分隔符
- ? net.sf.jasperreports.engine.JRCsvExporterParameter.RECORD_DELIMITER
- 這個(gè)參數(shù)是java.lang.String的對(duì)象,欄位之間的分隔符
- ? net.sf.jasperreports.engine.JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR
- 這個(gè)參數(shù)是java.lang.Boolean的對(duì)象,是否輸出圖片到目錄
- ? net.sf.jasperreports.engine.JRHtmlExporterParameter.IMAGES_DIR_NAME
- 這個(gè)參數(shù)是java.lang.String的對(duì)象,圖片目錄的絕對(duì)路徑
- ? net.sf.jasperreports.engine.JRHtmlExporterParameter.IMAGES_DIR
- 這個(gè)參數(shù)是java.io.File的對(duì)象,圖片目錄
- ? net.sf.jasperreports.engine.JRHtmlExporterParameter.IMAGES_URI
- 這個(gè)參數(shù)是java.lang.String的對(duì)象,通過(guò)Web訪問(wèn)時(shí)圖片的URI
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
