2016-04-23 6 views
1

У меня есть JasperReports график, В докладе field$F{soma} является BigDecimal, в databaseMySQL является Decimal(19,2). Я использую это sql: select SUM(valor) as soma для получения поля $F{soma}. Печать только $F{soma} Я получаю ярлыки как: 1.500,20. Без форматирования. Мне нужно показывать такие ярлыки, как: "R$ 1,520.20".

Пробовал так:

new java.text.DecimalFormat("R$ #,##0.00").format(Double.valueOf($F{soma})) 

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

Иметь не репутацию размещать изображения, но ссылки сильфонные являются о field типов ..

поле в MySQL:

enter image description here

Этикетки печатаются (без выражения формата)

enter image description here

+0

Что вы имеете в виду без успеха ?, покажите jrxml (объявление поля и как вы установите значение), с полной ошибкой –

ответ

1

Если ваш $F{soma} является BigDecimal поле, то просто написать

new java.text.DecimalFormat("R$ #,##0.00").format($F{soma}); 
+0

Я пробовал, и это дает мне следующее: 'Ошибка заполнения print ... java.lang.String не может быть отброшен в java.lang.Number java.lang.ClassCastException: java.lang.String не может быть добавлено в java.lang.Number' – Rodrigo

+0

Но этот параметр является «BigDecimal» – Rodrigo

+0

'BigDecimal' в базе данных и на 'IReport'. – Rodrigo

1

Используйте экземпляр NumberFormat, который имеет право Currency для форматирования значения. Если по умолчанию Locale дает вам проблему,

  • Использование NumberFormat.getCurrencyInstance(Locale inLocale) с Locale вы хотите, например:

    NumberFormat.getCurrencyInstance(Locale.US); 
    
  • Использование NumberFormat.getInstance() и setCurrency() установить Currency вы хотите, например:

    NumberFormat f = NumberFormat.getCurrencyInstance(); 
    f.setCurrency(Currency.getInstance(…)); 
    
+1

Я решаю его, используя новый 'java.text.DecimalFormat (« R $ #, ## 0.00 »). Format ($ F {soma});' после некоторого времени пытается, не уверенный в том, что вызывает ошибку. Но, спасибо за предложение. – Rodrigo