Ответ 1
У вас есть ошибка относительно логического?
Потому что вам нужно использовать Boolean вместо примитивного типа.
Так:
$F{mesure} != "PH"
($F{userfd4}).equals("1") ? true : false
дал бы cannot cast from boolean to Boolean
.
( $F{mesure}.startsWith("PH") ? Boolean.TRUE:Boolean.FALSE )
($F{userfd4}).equals("1") ? Boolean.TRUE : Boolean.FALSE
было бы правильно.
Смотрите также этот пример
Обновление ноябрь 2015 (7 лет спустя)
Петер Фриберг отмечает в комментариях:
В отчете Jasper 6.0 это не нужно:
Вы можете вернуть либоboolean
либоBoolean
простое выражение, например,$F{fieldName}.equals("hello")
.
Вы можете увидеть демонстрацию этой команды в demo/samples/tableofcontents/reports/TocPart.jrxml
<reportElement style="Sans_Bold" positionType="Float" x="50" y="0" width="100" height="15" isRemoveLineWhenBlank="true" uuid="db8b68c6-4430-4199-8967-3ab5c077cb56">
<property name="local_mesure_unitx" value="pixel"/>
<property name="com.jaspersoft.studio.unit.x" value="px"/>
<printWhenExpression><![CDATA[$F{level} == 1]]></printWhenExpression>
</reportElement>