Форматирование валюты в отчетах Jasper с использованием шаблона - PullRequest
3 голосов
/ 06 января 2012

У меня есть запрос, который возвращает сумму из таблицы:

select bus_price from mySchema.BusTable;

Это вернет суммы вроде:

526547
123456
456789.25
12478.35

Я использую вышеуказанные суммы в отчете о яшме.

Однако я хочу, чтобы вывод в отчете отображался следующим образом:

$526,547.00
$123,456.00
$456,789.25
$12,478.35

Фрагмент кода JRXML:

<textField isStretchWithOverflow="true">        
     <reportElement stretchType="RelativeToTallestObject" x="700" y="0" width="100" height="30"/>                               
     <textElement/>             
       <textFieldExpression class="java.math.BigDecimal">
         <![CDATA[$F{BusPrices}]]>
      </textFieldExpression>         
</textField>

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

Использование

<textField isStretchWithOverflow="true" pattern='$###,##0.00'>        

не работает.

Чего мне не хватает ??

Спасибодля чтения!

Ответы [ 3 ]

8 голосов
/ 02 мая 2012

Вы были близки

<textField pattern="¤ #,##0.00">

должно работать.

Вам нужен символ "¤", чтобы сделать его форматом "валюта".

Если вы загружаете iReports с номером версии, соответствующим вашему серверу, вы узнаете, какие у вас есть варианты.

2 голосов
/ 18 августа 2015

, если вы хотите отобразить символ валюты в $, а код валюты - USD, используйте следующий шаблон в отчете яшмы. шаблон = $ #, ## 0,00

0 голосов
/ 30 мая 2012

Это может зависеть от вашей версии Jasper.

На 3.7.6 я обнаружил, что указание класса textFieldExpression как java.util.BigDecimal означает, что шаблон не применяется.Возможно, эта версия Jasper не осознает, что это число.

Если вы вместо этого укажите класс textFieldExpression как «java.lang.Number», он будет использовать шаблон при передаче BigDecimal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...