Java 使用模式格式化Jasper报表中的货币

Java 使用模式格式化Jasper报表中的货币,java,jasper-reports,design-patterns,currency-formatting,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">

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

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

它不起作用

我错过了什么

谢谢你的阅读

你很接近

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

应该有用

您需要使用“·”字符使其成为“货币”格式


如果您下载的iReports版本号与您的服务器匹配,您将了解您的选项

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

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


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

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

目前没有用于此的内置函数。您是否将其绑定到datagrid?你在用什么语言?@johntotetwoo:我不明白你的问题。我正在使用DB2数据库和sql查询语言。@johntotetwoo,你的问题我也不清楚。