如何在JasperReports中使用printWhenExpression

13 jasper-reports

有人可以告诉我如何使用printWhenExpressionJasperReports吗?

Von*_*onC 20

你有相对于布尔值的错误吗?

因为您需要使用布尔而不是基本类型.

所以:

$F{mesure} != "PH"
($F{userfd4}).equals("1") ? true : false 
Run Code Online (Sandbox Code Playgroud)

会给cannot cast from boolean to Boolean.

( $F{mesure}.startsWith("PH") ? Boolean.TRUE:Boolean.FALSE ) 
($F{userfd4}).equals("1") ? Boolean.TRUE : Boolean.FALSE  
Run Code Online (Sandbox Code Playgroud)

会是对的.

另请参见此示例


2015年11月更新(7年后)

皮特FRIBERG指出的评论:

jasper报告 6.0中,这不是必需的:
您可以返回任何一个booleanBoolean简单的表达式$F{fieldName}.equals("hello").


Dón*_*nal 5

另一张海报在解释如何使用它的技术细节方面做得很好,所以我将尝试解释人们可能会发现它有用的情况。

基本上,它允许您根据布尔表达式显示或隐藏单元格的内容。例如,您可能希望仅在该人年满 18 岁时才显示该人的姓名,然后在姓名字段中使用如下所示的 printwhen 表达式:

$F{age} >= 18
Run Code Online (Sandbox Code Playgroud)