【问题标题】:Formatting currency in Jasper Reports using pattern使用模式格式化 Jasper 报告中的货币
【发布时间】:2015-08-18 14:19:54
【问题描述】:

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

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代码sn-p是:

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

不工作。

我错过了什么??

感谢阅读!

【问题讨论】:

  • 目前没有内置函数。你把它绑定到数据网格吗?你用的是什么语言?
  • @johntotetwoo:我不明白你的问题。我正在使用 DB2 数据库和 sql 查询语言。
  • @johntotetwoo,我也不清楚你的问题。

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


【解决方案1】:

你很亲密

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

应该可以。

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

如果您下载版本号与您的服务器匹配的 iReports,您会发现您的选择。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-10
        • 2013-10-18
        • 2011-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多