可能重复: formatting a string to a currency format in jasper report
我正在使用JasperReports创建一个发票文档,它需要本地化并支持多种货币。
因此,例如,当报告是法语时,货币值应该显示为1,00 €或1,00 $,而在美国英语中,货币值应该是€ 0.02或$ 1.00。
至关重要的是,发票货币通常与地区货币不同,在某些情况下,同一文档中可能使用多种货币。
我尝试使用包含的格式化工具:<textField pattern="¤ #,##0.00">,但是这并不会根据地区改变格式,我也找不到一种改变货币的方法(它只是用报表的地区货币符号替换¤,所以在这两方面都是错误的)。
我在这里看了一下:How do I format a Currency for a Locale in Java,但我还没有想出在我的报告中使用这个方法的方法。
谢谢!
我终于想出来了,但既然mods锁定了这个问题,那应该是重复的--但它不是.总之,这里有一个答案:
<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>发布于 2012-11-12 16:03:18
ireport中有两个参数REPORT_LOCALE和XML_LOCALE可以帮助
https://stackoverflow.com/questions/13346939
复制相似问题