Geldwert nach Gebietsschema und Währung formatieren [duplizieren]

Mögliche Duplikate:
Formatieren einer Zeichenfolge in ein Währungsformat in Jasper Report

Ich erstelle ein Rechnungsdokument mit JasperReports, das lokalisiert werden muss und mehrere Währungen unterstützt.

Wenn der Bericht beispielsweise in Französisch ist, sollte ein Währungswert als angezeigt werden1,00 € oder1,00 $ und wenn in US-Englisch sollte es sein€ 0.02 oder$ 1.00.

Entscheidend ist, dass die Rechnungswährung häufig von der Währung des Gebietsschemas abweicht und in einigen Fällen möglicherweise mehrere Währungen im selben Beleg verwendet werden.

Ich habe versucht, das mitgelieferte Formatierungswerkzeug zu verwenden:<textField pattern="¤ #,##0.00">Dies ändert jedoch nicht das Format entsprechend der Ländereinstellung und ich kann keinen Weg finden, die Währung zu ändern (Es ersetzt nur die¤ mit dem Währungssymbol für das Gebietsschema des Berichts, also in beiden Punkten falsch).

Ich habe hier nachgesehen:Wie formatiere ich eine Währung für ein Gebietsschema in Java? Aber ich habe keine Möglichkeit gefunden, dies in meinen Berichten zu verwenden.

Vielen Dank!


Nun, ich habe es endlich herausgefunden, aber da die Mods die Frage gesperrt haben, ist es angeblich ein Duplikat - WAS ES NICHT IST.

<variable name="CURRENCY" class="java.util.Currency">
     <variableExpression><![CDATA[Currency.getInstance($F{currencyCode})]]></variableExpression>
</variable>

<variable name="CURRENCY_FORMAT" class="java.text.NumberFormat">
    <variableExpression><![CDATA[
NumberFormat.getCurrencyInstance($P{REPORT_LOCALE});
((NumberFormat)value).setCurrency($V{CURRENCY})
]]></variableExpression>
</variable>

<textField>
     <reportElement x="179" y="58" width="89" height="15"/>
     <textFieldExpression><![CDATA[$V{CURRENCY_FORMAT}.format($F{revenueCents}/100)]]></textFieldExpression>
</textField>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage