Formatieren einer Zeichenfolge in ein Währungsformat in Jasper Report

Ich habe eine Zeichenfolge mit einem numerischen Wert.

Ich möchte es so formatieren, dass Hunderte durch Kommas getrennt sind und die Zahl ein Dollarzeichen vor sich hat.

z.B. 12345 sollte auf 12.345,00 USD formatiert sein

Ich habe den folgenden Code ohne Dollarzeichen ausprobiert:

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

und das unten stehende mit Dollarzeichen:

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

Beide geben jedoch Fehler.

Was ist der richtige Weg, um dieses Format zu erreichen?

Dies ist ein Teil von jasper report jrxml, in dem ich "null" im Bericht vermeiden und daher den folgenden Code einfügen möchte:

<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>

Wobei myString aus einer Abfrage resultiert und in jrxml deklariert wird als:

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

Früher wurde myString als BigDecimal deklariert, aber dann funktionierte der Vergleichsoperator? = Nicht.

Wenn der Währungswert nicht verfügbar ist, möchte ich "nicht verfügbar" anstelle von "Null" auf dem Bericht drucken. Ansonsten möchte ich, dass die Nummer wie oben beschrieben richtig formatiert wird.

Wie kann dieses Problem behoben werden?

Danke fürs Lesen.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage