天天看點

ireport常見問題

$V{PAGE_NUMBER} 表示目前是第幾頁 ,在text field 的 選項evaluation time選report是共幾頁,now表是目前頁。頁碼可在ireport裡直接設定。 “共幾頁 第幾頁”

iReport報表開發中遇到的問題:

1。 報表中工具欄中

T :不會變得文字

F :程式傳過來的文字字段

2。 在網頁上預覽報表什麼内容也不顯示

解決方法:

編輯-〉報表屬性-〉More...->在“如果沒有資料時:後面的下拉菜單中選 All sections,no detail”

如果沒有資料時:後面的下拉菜單中的幾個選項的意思分别是:

No pages [當Detail中沒有資料時沒有頁顯示]

Blank page [當Detail中沒有資料時出現一個空白頁面]

All sections,no detail [當Detail中沒有資料時會顯示detail以外的東西]

No-date section [] 暫時我也不知道,呵呵。

3。 Detail 和columnFooter 隻間總是有一段空白

解決方法:從 iReprot 工具列設定 [預覽] -> [報表屬性]

打開[More...] -> [Floating column footer] 打勾columnFooter 就會和 Detail 在一起了。

4。 報表中Detail循環部分内容的顯示格式

報表中Detail循環部分内容的顯示格式與報表屬性-〉Page Margin -> 下邊界的大小有關

比如detail中有兩列,當資料将第一列填充滿時[根據detail頁面大小]

會将資料自動填充到第二列[detail頁面大小能決定什麼時候第一列能被資料填充滿]

多條資料在Detail中填充的時候是按照頁面給顯示資料所留大小填充的

控制顯示多少行資料的時候嚴格按照頁面能顯示多少條資料來作出判斷

按照條件顯示的控件在不顯示的時候仍然占據頁面位置。

5。文字框中 Common 頁籤:

Print when expression 屬性裡是Boolean類型代表此字段的顯示與否内容一般是:

new Boolean(結果是boolbean類型的表達式)

6。文字框中Font頁籤字型選擇是成套的才能正确顯示:

[1] Font Name:選 宋體

PDF Font Name:選 STSong-Light

最後 PDF Encoding:選 UniGB-UCS2-H (Chinese Simplified)

[2] 引用外部字型如隸書

将字型檔案放入iReport安裝目錄的fonts檔案夾下如隸書[D:\iReport-3.0.0\fonts\SIMLI.TTF]

Font Name:選 隸書

PDF Font Name:選外部字型檔案 隸書 (SIMLI.TTF)

最後 PDF Encoding:選 Identity-H (Unicode with horizontal writing)[是外部檔案都選它]

7。動态文字框中 Text Field 頁籤:

中間有個 [複選框 Blank when null] 表示:當此文本框内容為空時是否顯示null。

鈎上表示為null時顯示空白會比較好看些,不鈎顯示null。

8。$V{PAGE_COUNT} 表示目前是這頁的第幾條記錄[在detail循環相關區域用]

$V{PAGE_NUMBER} 表示目前是第幾頁

$V{COLUMN_NUMBER} 表示detail有幾字段

9。字段即列數在工具中編輯->報表屬性->字段數中設定。

字段數把detail區分為相應的這些列,當一頁中第一列顯示不過了會自動跳到本頁的第二列以此類推

10。報表中資料轉換類型:

$V{PAGE_COUNT}.intValue() 報表中V屬性轉為int

Integer.valueOf($P{pageCount}).intValue() 報表中P屬性轉為int

Double.valueOf($F{realSum}) 報表中F類型轉為Double

($V{realSums}.doubleValue()+$V{realSumMs}.doubleValue()) double類型相加求和

Boolean.valueOf(((List)$F{mentalState}).contains("02")) 将boolean值轉為Boolbean

11。 報表中資料的操作:

文字框中的加法操作時:加号左右必須是數值類型如不是,加号就變成連接配接作用,而不是做加法操作了。

(($V{realSums}!=null?$V{realSums}:Double.valueOf(0)).doubleValue()

+

($V{realSumMs}!=null?$V{realSumMs}:Double.valueOf(0)).doubleValue())+" 元"

12。 報表中用到的一些方法:

contains()方法:((List)$F{mentalState}).contains("02") 從List類型的mentalState中查找 02 傳回boolean值

equals()方法:用于兩個String類型之間的比較

valueOf()方法括弧中間方的值隻能是String類型的,不然編譯會報錯

13。 報表區域結構說明:

title 報表頭[隻在第一頁的最上面顯示]

pageHeader 頁頭[每一頁都會顯示]

columnHearder [和columnFooter作用差不多,columnHearder在detail之前顯示]

detail [需要循環顯示的東西在此處寫]

columnFooter [展示在循環顯示的下面]具有循環的$V{PAGE_COUNT}目前記錄

pageFooter 報表尾[最後一頁的最下方顯示]

summary [此處用于做統計,顯示的話用處不大]