2010-03-08 81 views
11

有什麼方法可以將默認值設置爲報表中的字段?我在報表中有很多字符串字段,並希望它們在null時顯示「0,00」。JasperReports:默認值而不是'null'

+0

如果您對答案不滿意,請向您的問題添加更多詳細信息 – medopal 2010-03-24 10:33:50

+0

我認爲您還應該將文本值更改爲數值並設置模式,然後設置0而不是「0,00」,因爲它是不是全球數字格式。 – 2010-07-26 21:59:17

回答

17

假設字段名稱爲 「價值」,在 「文本字段表達」,寫:

($F{value} != null) ? $F{value} : "0.00"

+5

請確保檢查報告的腳本語言設置,對於我在iReport Designer 4.0.2中,此語法適用於Java,但不適用於Groovy – benz001 2011-10-04 05:39:39

0

您是否嘗試在文本字段中設置模式?

如果您使用的是iReport,可以在Text Field Properties部分的文本字段的屬性中找到它。

嘗試沿着###0.00的行來表示1234.56,即使它爲空也總是顯示0.00。

4

medopal的回答是好,但2個加法:

1)可以使語法短:

($F{field_name}) ? $F{field_name} : "0.00"

2)確保你的「其他人」的數據是同一類的領域上的A alue,否則當它試圖將數字強制轉換爲字符串時會出錯,等等。這是我剛開始時混淆的東西。

+0

當我刪除'!= null'時,我得到'Type mismatch:can not convert from String布爾「。 – 2017-10-26 11:52:00

+0

自從我提供這個答案以來,在我測試它在發佈前工作的時候,這很可能在7年內發生了變化。我不再是JasperReports的活躍用戶,@JamieKitson我希望你找到一個有用的最新資源。 – semperos 2017-10-27 13:36:29

4

如果需要,也可以在文本字段的屬性中選擇「空白時爲空」。其他選項更加靈活,但這很簡單。

+0

比以前更加優雅和簡單的解決方案。 – Dekel 2016-02-29 08:48:30

+0

是的,但它只適用於在文本框中只有單個字段的情況。 – 2017-10-26 11:53:41

0

這是最簡單的方法是在數據源查詢中使用數據庫的Coalesce() or NVL()函數來限制報表上的空數據。

但它取決於是否允許更改數據源查詢。如果沒有,那麼你可以去以前答案中提供的其他解決方案。