Jasper reports 根据区域设置和货币设置货币值格式

Jasper reports 根据区域设置和货币设置货币值格式,jasper-reports,currency,Jasper Reports,Currency,可能重复: 我正在使用JasperReports创建一个发票文档,该文档需要本地化并支持多种货币 因此,例如,当报告为法语时,货币值应显示为1,00€或1,00$,而在美式英语中,货币值应显示为0.02€或1.00 至关重要的是,发票货币通常与区域设置的货币不同,在某些情况下,同一文档中可能使用多种货币 我已经尝试使用附带的格式化工具:,但是这并不会根据区域设置更改格式,我也找不到更改货币的方法(它只会用报表的区域设置货币符号替换。,因此在这两方面都是错误的) 我在这里看了一下:但还没有找到在

可能重复:

我正在使用JasperReports创建一个发票文档,该文档需要本地化并支持多种货币

因此,例如,当报告为法语时,货币值应显示为
1,00€
1,00$
,而在美式英语中,货币值应显示为
0.02€
1.00

至关重要的是,发票货币通常与区域设置的货币不同,在某些情况下,同一文档中可能使用多种货币

我已经尝试使用附带的格式化工具:
,但是这并不会根据区域设置更改格式,我也找不到更改货币的方法(它只会用报表的区域设置货币符号替换
,因此在这两方面都是错误的)

我在这里看了一下:但还没有找到在我的报告中使用这个的方法

谢谢



好吧,我终于弄明白了,但既然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>


ireport中有两个参数,REPORT\u LOCALE和XML\u LOCALE,可以帮助您

是的,我已经根据用户语言正确设置了这些参数。我的问题是,货币值的格式化没有考虑到这一点,我需要在报表中显式设置货币代码,而不是使用locale.Ack@ianare的默认值。设置报告\u区域设置没有帮助这不是重复的!!另一个问题是手动指定数字格式,而ianare希望使用区域设置的默认数字格式。请,@Alex K等人再次阅读完整的问题!很好的问题。不是复制品。有权限的人,请重新打开。