2013-08-30 41 views
0

我使用下面的表達式來顯示或者有償/未付根據我的表字段的布爾值在JasperReports的報告顯示在JasperReports的

Boolean.valueOf($F{PAYMENT_STATUS}.equals(BOOLEAN.TRUE)) ? "Paid" : "Unpaid" 

但它不能正常工作並始終boolen值即使表中的發票全部付清,我仍然沒有報酬

那麼有人可以告訴我我在做什麼錯了,以及如何根據字段布爾值顯示付費/未付款嗎?

注:我使用JasperReports的設計5.2.0

+1

** PAYMENT_STATUS **字段的類型是什麼?它是* java.lang.String *還是* java.lang.Boolean *?對於布爾字段,$ F {PAYMENT_STATUS}? 「Paid」:「Unpaid」表達式在* JR 5.x * –

回答

2

試試這個:

($F{PAYMENT_STATUS}.equals(Boolean.TRUE.toString())) ? "PAID" : "UNPAID" 
+1

中有效,我將它改爲'Boolean.TRUE.toString()。equalsIgnoreCase($ F {PAYMENT_STATUS})'只是爲了安全起見(避免空值和大小寫問題,而外部括號是不需要的+1無論如何 – SJuan76

+0

$ F {PAYMENT_STATUS} .equals(BOOLEAN.TRUE),根據Jasper它是一個字符串布爾比較。因此,我們可以通過字符串以字符串或布爾值爲布爾值。 –

0

我覺得只是這種表達也應該幹活希望場PAYMENT_STATUS是布爾

($F{PAYMENT_STATUS}) ? "PAID" : "UNPAID" 

謝謝
Chandra

3

以靜態文本付費未付那裏並且基於靜態文本寫入打印時的表達式。爲付費 $ F {PAYMENT_STATUS} == true並且對於未付費 $ F {PAYMENT_STATUS} == false。它將起作用

相關問題