上周,我試圖使用Jasper創建報告。 在這篇文章中,我將記錄一些資源和鏈接,以便對任何尋求類似信息的人都有用。
我將介紹Jasper報告,示例和Dynamic Jasper的生命周期。
Jasper Reports是世界上最受歡迎的開源報告引擎。 它完全用Java編寫,并且能夠使用來自任何類型的數據源的數據,并生成像素完美的文檔,這些文檔可以查看,打印或導出為各種文檔格式,包括HTML,PDF,Excel,OpenOffice和Word 。
JasperReport生命周期
圖片來自Jasper Library Wiki
如圖所示,生命周期包含3個不同的階段,
1.設計報告
在此步驟中,將涉及創建JRXML文件,該文件是一個XML文檔,其中包含報告布局的定義。 我們可以使用iReport Designer或文本編輯器手動創建它。 使用iReport Designer,布局是完全以可視方式設計的,因此您可以忽略JRXML文件的實際結構。
這是有關使用iReport設計報告的詳細教程。 我們還可以使用本文后面介紹的Dynamic Jasper設計報告。
2.執行報告。
在執行報告之前,必須將JRXML編譯在稱為Jasper文件(* .jasper)的二進制對象中。 出于性能原因完成此編譯。 Jasper文件是您需要隨應用程序一起提供的文件,以便運行報告。 編譯報表后,將使用應用程序中的數據填充報表。 net.sf.jasperreports.engine.JasperFillManager類提供了必要的功能來填充報告中的數據。
通過將Jasper文件和數據源傳遞給JasperReports來執行報告執行。 數據源類型很多,可以從SQL查詢,XML文件,csv文件,HQL(休眠查詢語言)查詢,Java Bean集合等填充Jasper文件。為了找到合適的數據源,JasperReports非常靈活,可以讓您編寫自己的自定義數據源。
JasperFillManager.fillReportToFile('MasterReport.jasper',參數,getDataSource());
此操作將創建一個Jasper打印文件(* .jrprint),該文件用于打印或導出報告。
3.導出為所需格式
使用上一步中創建的Jasper打印文件,我們將能夠使用JasperExportManager將其導出為任何格式。 賈斯珀提供各種形式的出口。 這意味著使用相同的輸入,我們可以創建數據的多種表示形式。 Jasper內部使用不同的API創建文檔。 但是這些復雜性被更簡單的隱藏了
JasperExportManager。
JasperExportManager。 exportReportToPdfFile('MasterReport.jrprint');
簡而言之,生命周期可以總結在下圖中
圖片來自Ramki Tech
關于Jasper Reports生命周期的參考資料和其他優秀文章
- 賈斯珀圖書館Wiki
- 碧玉報告維基
- Ramki Java博客中的Jasper報告
- JasperReport –開源Java報告框架
例子
我發現很難找到Jasper報告的可行示例。 但是它就在包裝內! 下載Jasper Library后,轉到demo \ samples,您將找到許多示例程序。 其中許多需要有效的HSQL DB連接,要激活它,請轉到demo \ hsqldb并啟動服務器。 每個文件夾都有一個readme.txt文件,它將幫助您了解如何運行它。 可以使用ant任務執行所有示例。
這是其他一些來源的清單。
- Jasper庫中的樣本
- Java報告與Jasper報告–第2部分
- 碧玉報告-示例
- Spring MVC 3.1和JasperReports
使用Dynamic Jasper簡化報表創建
DynamicJasper (DJ)是一個免費的開源庫,它隱藏了Jasper Reports的復雜性,它可以幫助開發人員在設計簡單/中等復雜性報告時節省時間,從而自動生成報告元素的布局。
項目主頁提供了許多有關如何使用該庫的示例和代碼片段。 我已經使用了一段時間,它是JRXML文件的非常穩定的替代品。雖然使用動態jasper,但是報表設計是用Java編碼的。 這意味著每次編譯,填充和導出報告。 通過使用動態碧玉,我們將替代上述碧玉生命周期中的第一步。 即使使用動態jasper,您也需要jasper庫和其他相關文件。
這是Dynamic Jasper使用的更多示例。
- 如何在Dynamic Jasper上瀏覽頁面
- Spring 3 – DynamicJasper – Hibernate教程:連接DynamicReport
- Spring 3 – DynamicJasper – Hibernate教程:使用普通列表
參考: 在我們的面向對象的生活博客中,使用我們的JCG合作伙伴 Manu PK 使用Jasper Reports在Java中創建報告 。
翻譯自: https://www.javacodegeeks.com/2012/11/using-jasper-reports-to-create-reports-in-java.html