2016-04-23 4 views
1

Ich habe einen Jasper Diagramm, in dem Bericht die field$F{soma}BigDecimal ist, an den databaseMySQL ist Decimal(19,2). Ich verwende dieses sql: select SUM(valor) as soma, um das Feld $F{soma} zu erhalten. Drucken nur $F{soma} Ich bekomme Etiketten wie: 1.500,20. Ohne Formatausdruck. Was ich brauche, ist Etiketten wie zu zeigen: "R$ 1,520.20".

dies versucht:

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

Aber kein Erfolg, so dass, wenn jemand mir eine Richtung zeigen kann, ich dankbar sein werde.

haben nicht den Ruf Bilder zu veröffentlichen, aber Links unten sind über die field Typen ..

Feld in MySQL:

enter image description here

Labels (ohne Formatausdruck) gedruckt wird

enter image description here

+0

Was meinst du mit keinem Erfolg ?, zeigen Sie die jrxml (Feld Erklärung und wie Sie den Wert einstellen), mit vollständigen Fehler –

Antwort

1

Wenn Ihre $F{soma} ist ein BigDecimal Feld dann schreiben Sie einfach

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

Ich habe es versucht und es gibt mir das: 'Fehler beim Ausfüllen von print ... java.lang.String kann nicht in java.lang.Number umgewandelt werden java.lang.ClassCastException: java.lang.String kann nicht in java.lang.Number' – Rodrigo

+0

umgewandelt werden Aber der Parameter ist ein 'BigDecimal' – Rodrigo

+0

' BigDecimal' in der Datenbank und im 'IReport'-Diagramm. – Rodrigo

1

eine Instanz von NumberFormat verwenden, der das Recht hat, Currency den Wert zu formatieren. Wenn die Standard-Locale ist ein Problem geben,

  • Verwenden NumberFormat.getCurrencyInstance(Locale inLocale) mit der Locale Sie wollen, zB:

    NumberFormat.getCurrencyInstance(Locale.US); 
    
  • Verwenden NumberFormat.getInstance() und setCurrency(), um den Currency Sie wollen, zB:

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

Ich bekomme es gelöst mit neuen 'java.text.DecimalFormat (" R $ #, ## 0.00 "). Format ($ F {soma});' nach einiger Zeit versucht, nicht sicher, was den Fehler verursacht hat. Aber, danke für den Vorschlag. – Rodrigo