如何比较PrintWhenExpression中的布尔值

时间:2012-08-14 05:00:57

标签: jasper-reports

我在jrxml文件中定义了一个boolean类型的参数。这个参数的值来自我的java类(true / false)。如果值为true,那么我不想显示该字段。我是写下表达式如下。

<printWhenExpression><![CDATA[$P{flag}==false]]></printWhenExpression>

这个表达式有什么问题。这里我只在标志值为false时才显示该字段。任何人都可以告诉我。

2 个答案:

答案 0 :(得分:2)

试试这样:

<printWhenExpression><![CDATA[$P{flag}==Boolean.FALSE]]></printWhenExpression>

这是我的表达工作:

<printWhenExpression><![CDATA[$V{REPORT_COUNT}.intValue() % 2 == 0 ? Boolean.TRUE : Boolean.FALSE]]></printWhenExpression>

答案 1 :(得分:2)

在这里尝试了其他2个建议之后,可能还有大约30个其他的东西(java表达式杀了我),我终于得到了以下工作。在我的示例中,如果PRINT_INSTRUCTIONS布尔参数为TRUE,则不希望打印特定的文本字段,仅当它为FALSE时。

在iReport中,它看起来像这样:

new Boolean($P{PRINT_INSTRUCTIONS}.booleanValue() == false)

在XML中它看起来像这样:

<printWhenExpression><![CDATA[new Boolean($P{PRINT_INSTRUCTIONS}.booleanValue() == false)]]></printWhenExpression>