Posted on 2006-07-06 17:34
負人博客 閱讀(1957)
評論(0) 編輯 收藏 所屬分類:
開源研究
由于公司的項目需要這幾天一直在研究jasperreport和ireport,到現在已經研究了一段時間了,在學習過程中遇到了一些問題同時也學到了一些技巧,特做小文以享于他人.
1。工具簡介
????? jasperreport和ireport都是開源軟件,可以免費下載。
ireport使jasperreport的一個可視化設計工具,里面集成了一些畫圖工具和數據庫的操作,用ireport做出來的是一個jrxml文件也可以在里面直接編輯此文件(比較麻煩)。經過運行編譯后生成jasper文件,這個文件是我們需要的東西,將來我們做報表讀取的就是這個文件。工具的其他一些東西像下載地址之類的網上到處都是,在此就不細說了。下面我就把我這段時間遇到的問題在這做一個總結。
2。用ireport遇到的一些問題
??????(1)解決里面的中文問題:
?????????????
在pdf里面不能顯示中文
????????????? 解決方案:
???????????????? 1。將itextasian.jar下載下來(google一搜就有)放到? ireport目錄底下的lib文件夾下即可。有人還說要再放一個itext.jar到
lib目錄下,但是在我的應用過程中發現不放此文件也可以。
???????????????? 2。將每個文本域屬性當中的PDF font name改為STSong-Light并且將PDF encoding里面的設置改為UniGB-UCS2-H (Chinese Simplified),此時應該差不多了。
???????(2)?解決IE里面的斜線問題
????????????用ireport畫的斜線無法在IE里面顯示(因為html本身無法支持斜線)
??????????? 解決方案:將需要顯示斜線的地方做成圖片,然后利用image控件加載圖片即可
????????? (3)解決IE里面無法顯示的問題
???????????????? 在ireport里面畫出的圖表無法在ie里面顯示
???????????????? 解決方案:在Ireport里面畫圖的時候不要用直線工具,里面的線全部用static text文本框的border畫出。也就是說,里面的圖表全部都是用文本框堆積成的。切記:圖表里面的所有元素都不能交叉,如果有一點交叉或重疊,在IE里面都是顯示不全的。
3。應用時常見的幾種方式:
?????? 由于html自身的局限性,以及html顯示的問題,現在在網絡上傳輸的打印很多都采用pdf格式輸出。jasperreport對pdf做了很好的支持!
?????? 個人根據需要可以改寫jasperreport的代碼,以使之更好的為自己服務。
???? 1.可以把數據放到map中傳遞到pdf打印頁面(一般適合類似票據打印)???
??????? Map parameters =
new
HashMap();//參數
??????? 通過把map輸出到ireport模板中,得到要打印的票據
???? 2.可以把結果集放到collection中,這樣想打印什么都可以了!
???? 3.剩下的就是寫sql了,通過map把參數傳遞過去,利用參數就可以寫要查詢的結果集了。
注:在ireport通過查詢語句取結果集的時候發現定義的參數順序和ireport生成模板的順序不一致,這樣在sql中如果條件是(a,b,c)結果它把參數的順序寫成了(b,c,a)或者什么的。不知道這是不是ireport的bug。