форматирование строки в денежный формат в отчете jasper

У меня есть строка с некоторым числовым значением.

Я хочу отформатировать его таким образом, чтобы сотни были разделены запятыми, а перед числом стоял знак доллара.

напр. 12345 следует отформатировать до $ 12 345,00.

Я попробовал следующий код без знака доллара:

new java.text.DecimalFormat(#,##0.00).format.(myString)

и приведенный ниже код со знаком доллара:

new java.text.DecimalFormat($ #,##0.00).format.(myString)

Однако оба выдают ошибку.

Как правильно получить этот формат?

Это часть отчета jasper jrxml, где я хочу избежать "null" в отчете и поэтому вставляю следующий код:

<textField isBlankWhenNull="false" isStretchWithOverflow="true">            
  <reportElement stretchType="RelativeToTallestObject" x="1350" y="0" width="150" height="30"/>             
      <textElement/>             
   <textFieldExpression class="java.math.BigDecimal"><![CDATA[$F{myString}!=null?new java.text.DecimalFormat(#,##0.00).format.($F{myString}):"Unavailable"]]></textFieldExpression>        
</textField>

Где myString является результатом запроса и объявляется в jrxml как:

 <field name="myString" class="java.lang.String"/>

Ранее myString был объявлен как BigDecimal, но тогда оператор сравнения ?= не работал.

Если значение валюты недоступно, я хочу напечатать в отчете «недоступно» вместо значения по умолчанию «null». В противном случае я хочу, чтобы номер был правильно отформатирован, как описано выше.

Как решить эту проблему?

Спасибо, что прочитали.

16
задан Vicky 6 June 2012 в 11:40
поделиться