JasperReportsのprintWhenExpression
の使い方を教えてもらえますか?
ブール値に関連するエラーがありますか?
プリミティブ型の代わりにブール値を使用する必要があるためです。
そう:
_$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年11月の更新(7年後)
Petter Friberg 指摘 コメント内 :
jasper report 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>
_
もう一方のポスターは、使い方の技術的な詳細をうまく説明しているので、それが役立つと思われる状況を説明しようと思います。
基本的に、ブール式に基づいてセルの内容を表示または非表示にすることができます。たとえば、その人が18歳を超えている場合にのみその人の名前を表示し、次に次のようなprintwhenexpressionを使用して名前フィールドに表示したい場合があります。
$F{age} >= 18
静的メソッド「Boolean.valueOf(booleanb)」を使用することもできます。これは「($ F {mesure} .startsWith( "PH")?Boolean.TRUE:Boolean.FALSE)」とまったく同じロジックを実行し、経験則としてホイールを再作成しないでください。
Boolean.valueOf($ F {mesure} .startsWith( "PH"))
Boolean.valueOf($ F {userfd4})。equals( "1"))
$ P {mesure} .equals( "200")は、追加の詳細なしで機能するはずです。条件が真の場合に印刷されます