1. 程式人生 > >ireport 5.6.0的常見使用及開發報表中經常遇到的問題總結

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 。