IReport與JasperReport開發詳解一1、簡介: Jasperreport是一個報表制作工具,用戶須按照它編寫的規則編寫一個XML,然後得到用戶所要的報表文件。 Jasperreport程序庫是一個靈活,功能強大的報表產生工具,可以以PDF, HTML或XML等多種形式產生報表, 並支持CSV, XLS,等格式報表。該引擎由java編寫,支持多種形式應用程序產生動態報表。打印的報表文檔,Jasperreport是按照一個預定義的XML文檔來組織報表的數據, 這些數據來源多樣,包括關系數據庫、java容器對象,後面我們將介紹,用戶通過簡單的接口來實現數據源與報表引擎的使用。 首先我們所用到的IReport的版本是:"iReport 0.4.1";JasperReport的版本是:"jasperreports 0.6.5".目前IReport支持asperreports 0.6.0到0.6.4之間的版本包括0.6.0.和0.6.4版本身。 1.運行環境 JDK要求最低1.2.2 或更高版本。 2.JASPerreport的工作方式(圖片來源:http://ireport.sourceforge.net/cap3.Html#3.1) 用戶通過使用IReport設計好報表後,得到一個XML文件(以.jrXML結尾的),編譯後生成jasper文件(以.jasper結尾),最終要使用的是編譯後的*.jASPer文件3.IReport 3.1.1 將IReport0.4.1解壓後在目錄中會有一個名為:"iReport.bat"的批處理文件,雙擊運行它(如圖:)。 3.1.2 IReport運行起來後的主界面如下圖: 3.1.3 制作基於SQL Server數據庫的一個報表(靜態的報表制作在網上很多,在這裡不作說明), 首先選中File菜單(如圖), (圖1)選取中New Document創建一個新報表(也可以選Report Wizard報表向導來生成報表,現在暫不談),也可以點擊圖標, 來新建報表。 3.1.4 真寫報表屬性 在"Report Name"真入報表名字,在"Page size"區內選擇你所要用的紙張及尺寸,我們在這裡選擇默認參數, 在網上很多資料介紹須要修改"i18n"選項卡中的"XML Encoding",改為"GB2312",默認參數為" UTF-8",並且IReport並沒有提供該選項,此選項我們並沒有去修改它仍然為"UTF-8",如果你認為有必要可以手動輸入"GB2312".然後點擊OK.主界面變為: 3.1.5 設置數據源,單擊菜單"DataSource",選中"Connections/DataSources"出現如下對畫框,單擊"New"設置數據源 單擊"New"後,彈出對畫框,設置連接屬性(如圖:),選擇你的數據源("Type of Connection/DdataSource"), 裡面有JavaBean,XML,JDBC等數據源,我們選擇JDBC數據源,數據源名字"Name",可以任意輸入你喜歡的名字。在"JDBC Driver "下拉列表框中選擇數據庫連接驅動, 我們選擇連接SQL Server類開的如圖,連接JDBC的URL,它會自動為你填上。在"Server Address"輸入框中輸入服務器地址。在"DataBase"輸入框中填寫你要使用的 數據庫名字.以及填上你登陸數據庫的用戶名"UserName"和密碼"Password",然後點擊密碼輸入框中邊上的"Save PassWord"保存密碼,接著點 擊"Wizard"將你的登陸信息更新到"JDBC URL"中 ,現在我們應該作一個對數據庫的連接測試,看看設置是否正確 點擊右下角的"Test", 如果測試成功後會彈出 否則就會彈出連接錯誤對話框(如圖) 這時你就要檢查你的設置參數是否正確,以有數據庫的安全登陸方式。未完待續 FAQ 1.生成報表時中文產生亂碼? JasperReport的中文處理,須要一個亞洲語言包" iTextAsian.jar,"話到IReport下的lib目錄中;然後修改報表的"PDF Font Name"將其改為"STSong-Light",再則是修改"PDF Embedded PDF Encoding" 將其改為"UniGB-UCS2-H(Chinese SimplifIEd)" ,這樣就可以解決JasperReport的中文問題了(針對PDF設置的,對Excel也許要少一些,不過這樣設置同樣也能顯示為中文,是不愛引響的)。 2.報表編譯時產生NoClassDefFoundException異常? 在代碼處理JasperReport時出現該異常,是因為在引用JasperReport的一些jar文件不完整,因工作忙我的處理方式是將JasperReport目錄下的Demo ample\webapp\WEB-INF\lib\所有的jar文件,全引用了,以防不測,同時也沒有時間去過多的深究。一定會有一些不必要的包被引用了,如果你有時間可以看一下,再將不必要的jar去掉。 3.另存為PDF時出現UnisupportEncodingException異常? 在報表設計的過程中難免會有小錯誤,這是因為沒有改變"PDF Font Name"應改為"STSong-Light". 下載相關: IReport下載地址:http://ireport.sourceforge.net JasperReport下載地址:http://jASPerreports.sourceforge.Net iText亞洲語言包下載地址:http://www.lowagIE.com/iText