ireport 5.6.0的常見使用及開發報表中經常遇到的問題總結
前言:第一次使用這個ireport報表工具的時候,在使用過程中遇到很多問題,百度的答案也是零零散散,有的可以找到,有的根本就沒有。使用了近2個月,在此期間看過 2 3 本關於ireport的書,幾十個部落格關於ireport的使用和常見問題整理,我將這些都整理起來,自己再補充一些,希望可以幫到初次使用ireport的新手。
ireport常見使用。
關於Band的解釋如下
看圖慢慢進行理解。
Column Header和 Detail 1 要與你拖入的欄位 高低一致,這樣很美觀
藍線與上下高低一致。
band 屬性的print when Expression 這裡寫入條件 可以讓它在某個條件顯示 如new Boolean($V{PAGE_NUMBER}==$P{cc})
頁數是第幾頁的時候顯示。方便做複雜的頁面。
接下來介紹常見的問題
問題1:如何在ireport實現每頁顯示固定條數
有兩種解決方法:
方法1:在Reprot Inspector 下的你的ireport 屬性中設定page height 也就是紙張的高度。
方法2:在組建面板中使用break按鈕。拖入Detail 1 中。 在它的屬性中找到print When Expression ,這是分頁的觸發條件
如:(new Boolean($V{PAGE_COUNT}.intValue()%15==0)
&&
new Boolean($V{PAGE_NUMBER}==1))
||
(new Boolean($V{PAGE_COUNT}.intValue()%30==0)
&&
new Boolean($V{PAGE_NUMBER}>1))
意思是如果資料滿足每滿足15條並且頁數為1 進行分頁 或者 如果資料滿足每30條並且頁數>1 進行分頁。
具體需求 具體寫條件。
問題2: 關於元件面板的使用
break 分頁符 Frame拉入後可以在裡面寫東西(也就是一個簡化的新的頁面)
Barcode是條形碼根據需求選擇想要的那個,拖入後在屬性裡設定code Expression這裡是條形碼顯示的值。在Preview中預覽可以
用手機掃一掃讀取。設定Module Width可以更好的調整條形碼的樣子。
Line 線 最常用的 Static Text 拖入輸入漢字即可
問題3:
關於金額方面使用千分符進行顯示
右鍵Field pattern 在Number中勾選Use 1000 separa...
問題4:關於日期方面的處理
右鍵Field pattern Date或 Time
問題5:關於資料顯示 資料為null是不顯示null 顯示空白
選中所有動態Text Field 屬性中勾中Blank When Null
問題6:關於單元格的邊框帶線
右鍵點選padding And borders 在borders中點選4個方向,在Line width中輸入0.5 點選OK
問題7:關於數字型別 % 小數點位數及資料處理
右鍵Field pattern Currency Percentage中找
問題8:關於圖片的路徑問題
新建一個Parameters 在圖片屬性中的Image Expression 中選這個引數,將絕對路徑通過引數傳入圖片。
問題9:關於pdf匯出中文漢字顯示不出來,怎樣處理
選中所有Static Text 和Text Field 在屬性裡面的最下方 Pdf Encoding 選擇 Unigb-UCS2-H和PDF FONT NAME IS..選STSong-Light
問題10:關於IReport中如果動態單元格中顯示的字過長,進行換行,而其它沒換行其顯示高度肯定不一致了,解決換行導致的單元格對不齊
屬性中勾選Stretch with overflow 並在Stretch type 中選擇第三個Rekative to tall....
建議 拉大單元格大小 字調小 自然換行
問題11:關於iReport 中獲取系統當前時間
【Text
Field Expression】引數,屬性可手工錄入為【java.util.Calendar.getInstance().getTime()】
問題12:關於報表屬性介紹
Summary on a new page Summary 單獨列印一頁可以設定自己想要的效果
Title on a new page 同上
問題13:關於單元格欄位屬性介紹
略...
問題14:關於detail1 與column header中間有大量空白 進行處理
Float
Column footer 在detail 1和footer中間去除大量空白
問題15:關於主子報表的問題
這個可以用一條sql搞定 沒必要那麼麻煩
問題16:關於調整單元格高度和寬度小技巧
問題17:關於統計某個值怎麼顯示
這個百度 有 或者在java後臺計算出以引數傳入
問題18:關於金額 人民幣大寫轉換
在java後臺寫好轉換方法 把大寫以引數或臨時欄位加入sql中
問題19:頁面美觀問題
統一以這種樣式。
還有一些零碎的各種問題,百度會有一些答案的,就先簡單介紹到這裡,以後會有補充。
QQ799800648 。