16

printWhenExpressionJasperReportsの使い方を教えてもらえますか?

4

4 に答える 4

21

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 では、これは必要ありません。いずれか
を返すか、次のような単純な式を返すことができます。booleanBoolean$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>
于 2008-11-17T06:16:18.750 に答える
5

他のポスターは、それを使用する方法の技術的な詳細を説明するのに良い仕事をしたので、私はそれが役に立つと思われる状況を説明しようとします.

基本的に、ブール式に基づいてセルの内容を表示または非表示にすることができます。たとえば、次のような printwhen 式を使用して、その人物が 18 歳以上の場合にのみその人物の名前を名前フィールドに表示したい場合があります。

$F{age} >= 18
于 2008-11-19T15:02:22.777 に答える
2

静的メソッド「Boolean.valueOf(booleanb)」を使用することもできます。これは「($ F {mesure} .startsWith( "PH")?Boolean.TRUE:Boolean.FALSE)」とまったく同じロジックを実行し、経験則としてホイールを再作成しないでください。

Boolean.valueOf($ F {mesure} .startsWith( "PH"))

Boolean.valueOf($ F {userfd4})。equals( "1"))

于 2009-02-12T15:41:55.533 に答える