使用模式格式化Jasper Reports中的货币

时间:2012-01-06 13:39:57

标签: java jasper-reports design-patterns currency-formatting

我有一个从表中返回金额的查询:

select bus_price from mySchema.BusTable;

这将返回如下数量:

526547
123456
456789.25
12478.35

我在jasper报告中使用了以上金额。

但是,我希望报告中的输出显示为:

$526,547.00
$123,456.00
$456,789.25
$12,478.35

JRXML代码片段是:

<textField isStretchWithOverflow="true">        
     <reportElement stretchType="RelativeToTallestObject" x="700" y="0" width="100" height="30"/>                               
     <textElement/>             
       <textFieldExpression class="java.math.BigDecimal">
         <![CDATA[$F{BusPrices}]]>
      </textFieldExpression>         
</textField>

我知道我必须使用模式。但是,我无法使其发挥作用。

使用

<textField isStretchWithOverflow="true" pattern='$###,##0.00'>        

无效。

我错过了什么?

感谢阅读!

3 个答案:

答案 0 :(得分:8)

你很亲密

<textField pattern="¤ #,##0.00">

应该有用。

您需要“¤”字符才能使其成为“货币”格式。

如果您下载的iReports版本号与您的服务器相匹配,则可以找到您的选项。

答案 1 :(得分:2)

如果要在$中显示货币符号且货币代码为USD,请在jasper报告中使用以下模式。 pattern = $#,## 0.00

答案 2 :(得分:0)

这可能取决于您的Jasper版本。

在3.7.6上我发现将textFieldExpression类指定为java.util.BigDecimal意味着不应用该模式。也许那个版本的Jasper没有意识到它是一个数字。

如果您选择将textFieldExpression类指定为“java.lang.Number”,则在传递BigDecimal时将使用该模式。