程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> IReport與JasperReport開發詳解二

IReport與JasperReport開發詳解二

編輯:關於JAVA
IReport與JASPerReport開發詳解二 3.2.1 設計報表 現在請點擊菜單"DataSource"然後選取中"Report query"項,也可以點擊圖標 ,接著IReport會彈出一個對話框(如圖):現在我們在"Report SQL Query"中輸入SQL語句"select * from titles",然後去掉"Automatically Retrieve Fields"前面的鉤,再點擊"Read Fields"將表中的數據字段讀出來如圖 點擊"OK"返回主界面。現在該設計報表的內容了,請點擊菜單"View"下的"Report Fields"項,也可以點擊工具欄上的圖標,然後你將會得到表中所有的字段名如圖:你可以選擇你想要的列,以拖動的方式,將先中的列拖到報表中,這樣IReport就會自動的將你所拖動的列進行綁定(可別告訴我你不會拖動這個動作,呵呵),在這裡我們只作簡單的演式,就不拖動太多的列到報表中,我們只選取取"title_id, pubdate,title"三列就可以了。當然你如果不想用這種簡單的方法,要手工添加那也沒辦法,同樣也可以你可以點擊工具欄上的圖標,這時你的光標就會變為 一個十形,你可以在報表的任意位置畫一個 文本框出來,因為你在報表中畫的是一個動態的文本列,這時你得設置它的屬性,你可以雙擊你剛才畫的文本框,也可以對著你所畫的文本框點擊右鍵,選"Properties"。來設置它的屬性。如圖:在默認情況下打開屬性窗口後會自動的轉到"Text Field"選項卡上,這時你得設置一個與數據庫相對應的數據類型, 這個不能出錯,否則會在你編譯或生成報表時出錯(未作測試,不能確定會在那一步出現錯誤),還有一個我們必須關注的是"TextField expression",在它的輸入框中默認為"$F{field}"這時你須要將大括號中的"Field"改 為你表中要指定的列名。如果你要問"$F"代表什麼,那你就看下面的這個表就應該知道了。設置好這兩個後就可以綁定一個列的數據了。 不過你必須將它放在"detail"區中,否則你在運行報表時可能只能顯示一條記錄到報表中。為什麼這就不用解譯了吧!整個報表的空頁面 IReport已為你劃分好了數據擺放的位置,比如:"title,pageHeader,columnHeader"等等。 元素 名稱 引用 變量 variablesName $V{ variablesName } 參數 parameterName $P{ parameterName } 字段 filedsName $F{ filedsName } 現在運行報表總覺得有點單調,我們可以為報表設置一些標題之類的信息,在工具欄中找到,點擊它然後在"Title”區畫一個文本框,雙擊它或點右鍵選"PropertIEs" 這時出現一個靜態文本框的屬性窗口,選中"Static Text“選項卡,輸入”測試報表“,可以在"Font" 選項卡中選擇你希望看到的字體和字號,如圖 在這裡你也可以不用輸入,也可以從數據庫中取數據來填充它,具全在"common"選項卡,點擊後,你會看到"Print When expression"在它的輸入框中輸入你所想要的列名,具體操作如上,也要以從右邊的三尖角圖標 進去,有四個類型"Fields,Parameters,Variables,Formulas"這裡只介紹前兩種,"Fields"在前面已經說過了,具體操作是一樣的,就不再細說,第二種"Parameter"這個參數一般不在IReport中使用,後面再講。然後按照設置"title"的方式來設置"ColumnName“,做好後你所看到的中文顯示不出來,或亂碼,怎麼辦呢?你可以見頁底的 FAQ ,現在一個最基本的報表可以認為已經做好了,但是還得調整它的位置,以及上下的邊界線,要不然數據顯示到頁面時會非常的零散。    現在保存,記得最好保存為與你新建報表時的名字一樣。理由:“因為在使用文件流來讀取報表,然後編譯時會出現錯誤。保存完後點擊工具欄上的圖標 進行編譯,在工具欄上有兩個圖標一個是執行靜態報表用的,而另一個是用來填充動態報表的 ,現在我們只能用動態報表執行的按鈕,來填充報表,用前者來執行的話除了你的靜態文本之外,其它的顯示null。IReport在默認情況下為"JRViewer PrevIEw" ,生成後的效果為: 你也可以在 "Build" 菜單中選擇你想要得到的報表格式,如:PDF,XSL,CSV,Html等...當你選擇好後如果沒有指定運行你指定生成報表的運行程序的話,它默認會保存到IReport的當前目錄中,不會是在你保存報表所在目錄。如果你不喜歡看英文界面的話,你可以在菜單"Tools"下的"Options..."可以設置語言,報表的保存位置,備份位置,運行報表所用的程序等等... ... 未完待續 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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved