0

フィールド式 ( textFieldExpression )で 2 つの Big Decimal 値を比較する方法を教えてもらえますか? iReport 3.0.0を使用しています。

より大きな場合の構文は何ですか?

これは私の式で、機能しますが、2 つの値が等しくない場合にのみ表示され、どちらが大きいかを確認する必要があります ( amount > paid_amount)。

私はこの表現を使用しています:

($F{paid_date}!=null & ($F{amount}.equals($F{paid_amount}))) ? new String ("PAID") :(
($F{paid_date}==null) ? new String ("NOT PAID"): (
($F{paid_date}!=null & (!$F{amount}.equals($F{paid_amount}))) ? new String ("PARTIALLY PAID"):(new String ("INVOICE MISSING "))))
4

1 に答える 1

1

次のようなフィールドの場合:

<field name="amount" class="java.math.BigDecimal"/>
<field name="paid_amount" class="java.math.BigDecimal"/>

次の表現を使用する必要があります。

<textFieldExpression class="java.lang.String"><![CDATA[$F{amount}.compareTo($F{paid_amount}) == 1 
? "The amount value is greater than the paid_amount value" 
: $F{amount}.compareTo($F{paid_amount}) == 0 ? 
"The amount value is equal to the paid_amount value" : 
"The amount value is less than the paid_amount value"]]></textFieldExpression>

この式は、 int BigDecimal.compareTo(java.math.BigDecimal val)メソッドの使用に基づいています。

于 2012-09-05T18:59:46.780 に答える