printWhenExpression
JasperReportsの使い方を教えてもらえますか?
4 に答える
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 年 11 月更新 (7 年後)
Petter Fribergはコメントで次のように指摘しています。
ジャスパー レポート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>
他のポスターは、それを使用する方法の技術的な詳細を説明するのに良い仕事をしたので、私はそれが役に立つと思われる状況を説明しようとします.
基本的に、ブール式に基づいてセルの内容を表示または非表示にすることができます。たとえば、次のような printwhen 式を使用して、その人物が 18 歳以上の場合にのみその人物の名前を名前フィールドに表示したい場合があります。
$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"))