本教程所使用實例均來自jaspersoft iReport軟件自帶的Samples。在開始本教程之前,請先運行Sample數據庫,如下圖所示,相關案例也可在相應的菜單中點擊打開。軟件安裝,配置設置請見相關教程。
iReport 是一個能夠創建復雜報表的開源項目,它是用Java 語言編寫的,是目前全球較為流行的開源報表設計器。它是開源報表引擎JasperReport 的可視化設計工具。由于是開源項目,所以有很強的擴展性。
JasperReport是強大、靈活的報表工具,除了以文本數據方式生成報表外,還可以生成包含圖片、圖表和圖形的專業報表,并可轉換成PDF,HTML,Excel等。基于java的開源項目,可以用于在各種Java應用程序,包括J2EE,Web應用程序中生成動態內容。 <br>支持豐富多樣的報表表現形式(文本,表格,圖片,圖標,圖形,條碼) <br>靈活的報表排版 <br>多樣的數據提供方式(JDBC, JNDI, Java Bean, xml, Json…)
JapserReport學習總結。概述JasperReport是一個強大、靈活的報表生成工具,能夠展示豐富的頁面內容,并將之轉換成PDF,HTML,或者XML格式。該庫完全由Java寫成,可以用于在各種Java,包括J2EE,Web應用程序中生成動態內容。應用程序JaperReport是開源的,且庫都是由Java編寫成的。JasperReport有個相關的圖形化的設計工具叫ireport。二、開發步驟1.首先通過IReport工具制作報表模板,生成相應的jrxml文件,jrxml文件編譯后生成相應的后綴名為.jasper的文件注:導出成pdf格式時.
報表設計(reportdesign)”是一個模板,JasperReports引擎會用它來傳遞動態內容到打印機,屏幕或者是Web頁面。存儲于數據庫中的數據會根據報表的實際設計來填充整個報表,打印到頁面導向的文檔。
主要任務和過程在這一章里,你將會了解到如何解析你的XML報表設計、編譯它們、使用數據填充、顯示、打印和輸出到其它格式。XML解析JasperReports使用SAX2.0的API來解析XML文件。但是并沒有和特殊的SAX2.0實現(如:Xerces)綁定起來。不過你可以在運行時制定所需要用到的XML解析器。舉個例子來說明。JasperReports使用org.xml.sax.helpers.XMLReaderFactory類里的createXMLReader()方法。在這種情況下,就需要在運行時再Java系統屬性中設置SAX驅動的全文件名org.xml.sax.driver。你可以通過兩種方式來實現。我會通過使用XercesXML解析器來解釋如何去做。
API概述大多數情況下,人們使用JasperReports的類庫的時候都只會用到一小部分,并且不會對所有的API有個整體的概念。在這一章節里讓我們近距離的來看一下那些在使用時有重要意義的類和接口。同時也可以了解在需要使用到JasperReports報表功能的應用程序里怎樣使用這些類和接口。
1簡介JasperReport是一個強大、靈活的報表生成工具,能夠展示豐富的頁面內容,并將之轉換成PDF,HTML,或者XML格式。最重要的是它是開源的,這給我們帶來很大方便,但是文檔卻要錢,讓人不爽。不過人總要生存,再說,做這么一個好東西,用戶總不能一點代價也不付(雖然對于中國普通程序原來說太貴了點)。它還有一個相關的開源工程—IReport,這是一個圖形化的輔助工具,因為JasperReport僅提供了可使用的類庫而未提供更好的開發工具,IReport的出現解決了這一難題。它們配合使用將會更大程度的提高效率。該庫完全由Java寫成,可以用于在各種Java應用程序,包括J2EE,Web應用程序中生成動態內容。它的主要目的是輔助生成面向頁面的(pageoriented),準備付諸打印的文檔。JasperReport借由定義于XML文檔中的reportdesign進行數據組織。這些數據可能來自不同的數據源,包括關系型數據庫,collections,java對象數組。通過實現簡單的接口,用戶可以將reportlibrary插入到訂制好的數據源中,在以后我們將提到有關內容。
本教程所使用實例均來自jaspersoft iReport軟件自帶的Samples。在開始本教程之前,請先運行Sample 數據庫,如下圖所示,相關案例也可在相應的菜單中點擊打開。軟件安裝,配置設置請見相關教程。
JasperReport + iReport生成打印文件
一、準備下載iReport3.7.1、JasperReport3.7.1、Struts2.1.8及其他需要的包.
本文不是對iReport的每個細節進行介紹,關于iReport的每個細節可以參考iReport網站的資料,但是可能得花費一些費用。一般用戶沒有必要付出這些費用,因為我們關心的是如何制作我們需要的報表,而不是去擴展iReport,比如制作iReport的插件。
JasperReports 之 HelloWorld
Jasperreport是報表打印工具,支持pdf、csv多種格式的報表打印。 JasperReport是一個開源的工具包,將JasperReport包加入到項目的classpath中即可開始使用JasperReport包了,從java程序中通過調用包中的類對jrxml文件進行操作,可以完成報表的編譯、顯示、輸出等工作。
JasperReports使用SAX2.0的API來解析XML文件。但是并沒有和特殊的SAX2.0實現(如:Xerces)綁定起來。不過你可以在運行時制定所需要用到的XML解析器。 舉個例子來說明。JasperReports使用org.xml.sax.helpers.XMLReaderFactory類里的createXMLReader()方法。
JasperReport是一種采用純Java實現的快速且非常流行的生成報表的類庫。而對于任何的報表方案,取得數據并傳遞給報表引擎是其中最重要且最值得關心的方面。但遺憾的是,在這方面JasperReport本身似乎有一定的不足。而如今的很多Java應用程序,采用數據獲取框架來進行數據的匹配與動態生成SQL。例如iBATIS數據映射框架。當然,如果只是使用JasperReport獲取數據及管理數據的默認機制的話,不足以與現成的數據框架進行很好的平衡。但可喜的是,可以通過使用傳遞給JasperReport一個數據庫的連接進行代替,當然這種連接可以通過使用XML進行非常方便的管理與配置。
一直以來,報表都是很多項目中一個重要的、不可 獲取的組成部分。然而其復雜性和專業性又使得程序員不能夠也沒時間自己設計屬于目前手頭正在構建的系統的報表模塊;即便設計來了又可能由于通用性等原因不 能夠應用到下一個系統當中,這就導致了報表類庫/組件在市場上的火爆。典型的例子就是水晶報表,幾乎無處不在。還有一些專門處理中國式報表的組件也陸續出 現在軟件市場上。然而遺憾的是,他們中的絕大多數都是要收費的--這也無可厚非,畢竟人都是要生存的。所以大多數預算不夠充裕的程序員都將目光轉向了開源 軟件,而JasperReport就將是第一個進入他們視線中的佼佼者。
做了近一年的項目接近尾聲了,正進入最后的報表開發階段。由于我使用的是Struts2結合JasperReports來開發報表,不得不去Apache的官網瞧一眼,發現上面的文檔是很有用的,可惜是英文的,因此就抽空做了下簡單的翻譯。
Java報表應用教程。第一講 JasperReport 與iReport的基礎知識。<br><br> JasperReport 簡介<br> 一個報表是由一個源代碼的文件來描述,這個源文件就是由DTD(jasperreport.dtd, version 0.6.3 is listed in Appendix B)來定義的XML標記。在0.5.3版本中它的源文件擴展名變成了.jrxml; 取代了一般的.xml擴展名。報表的源代碼被編譯成jasper文件(擴展名是.jasper)。<br> jasper文件是一種預報表,嚴密的說就像是java的類被封狀成的對象。Jasper文件通過你的應用程序來加載。它被添加一個數據源的標記從而創建報表,接著它就能以你想要的格式輸出(例如:pdf或xls)。<br><br> JasperReport 簡介<br> JasperReport 是一款報表打印組件,是開放源代碼組織sf.net 中的一個java 報表打印工程,JasperReport 的最新版本可以從http://jasperreports.sourceforge.net/index.html 下載得到。JasperReport 適合用來做WEB 應用程序與Java Application 的報表打印組件,而且關鍵的一點是:JasperReport 是免費的!
JasperReport是一個強大、靈活的報表生成工具,能夠展示豐富的頁面內容,并將之轉換成PDF,HTML,或者XML格式。最重要的是它是開源的,這給我們帶來很大方便,但是文檔卻要錢,讓人不爽。不過人總要生存,再說,做這么一個好東西,用戶總不能一點代價也不付(雖然對于中國普通程序原來說太貴了點)。它還有一個相關的開源工程—IReport,這是一個圖形化的輔助工具,因為JasperReport僅提供了可使用的類庫而未提供更好的開發工具,IReport的出現解決了這一難題。它們配合使用將會更大程度的提高效率。 該庫完全由Java寫成,可以用于在各種Java應用程序,包括J2EE,Web應用程序中生成動態內容。它的主要目的是輔助生成面向頁面的(page oriented),準備付諸打印的文檔。 JasperReport借由定義于XML文檔中的report design進行數據組織。這些數據可能來自不同的數據源,包括關系型數據庫,collections,java對象數組。通過實現簡單的接口,用戶可以將report library插入到訂制好的數據源中,在以后我們將提到有關內容。 其實這是一份JasperReport Ultimate Guide的簡單翻譯以及我的理解和例子。在最后,我將描述一個我正在做的工程,將其中用到的相關信息貢獻出來。我這么做是因為當我在學這個類庫的時候苦于很少有相關的中文文檔,誘惑語焉不詳,希望其他人不再受苦。這個文檔將分幾次貼出來,與原文檔的章節相對應。