2009-07-19 81 views

回答

3

好的,我修好了。我将$F{Personel_ODEME}的类型更改为String,然后它像魅力一样工作。

10

该问题源于您的测试$F{Personel_ODEME}.equals(Boolean.TRUE),其中贾斯珀认为是StringBoolean比较,并不喜欢。为了解决这个问题,试试这个:

($F{Personel_ODEME}.equals(Boolean.TRUE.toString())) ? "PAID" : "NO PAID" 

这将导致StringString比较。

请注意,在Java中,"true".equals(Boolean.TRUE)会导致错误。

编辑:

这似乎是一个碧玉“PrintWhen”表达,它允许以确定是否打印的细胞或不的内容。它期望Boolean.TRUEBoolean.FALSE作为它的返回值。当您返回“PAID”时,Jasper会尝试将String评估为Boolean,因此它会抛出异常。

+1

我相信你的意思是 - “true”.equals(Boolean.TRUE) – 2009-07-19 02:12:21

1

试试这个:

Boolean.valueOf($F{Personel_ODEME}.equals('TRUE')) ? "PAID" : "NO PAID" 
0
($F{Personel_ODEME}==true?"PAID":"NO PAID") 

注:真(关键字)是区分大小写的。并且不应该是大写(TRUE)

相关问题