当前位置: 首页 > 知识库问答 >
问题:

Jasper报告中的某些货币符号没有出现

羊毅庵
2023-03-14
Locale locale = new Locale("zh", "CN");
templateParameters.put("REPORT_LOCALE", locale); //A map to pass to report
Locale locale = java.util.Locale.CHINA;
NumberFormat.getCurrencyInstance($P{REPORT_LOCALE}).format($P{Param_Name})

如果有人能指出错误或提供一些建议,我将非常感谢。

共有1个答案

锺离晗昱
2023-03-14

我相信你的问题与字体支持有关。

我们应该在使用JRPDFExporter的情况下使用字体扩展。

我试着使用支持中文的字体,在这种情况下一切正常。我不知道为什么使用一大堆其他字体没有帮助

Map<String, Object> params = new HashMap<>();
params.put(JRParameter.REPORT_LOCALE, Locale.CHINA);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource());
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Show currency" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
    <parameter name="value" class="java.lang.Double" isForPrompting="false">
        <defaultValueExpression><![CDATA[1234.567]]></defaultValueExpression>
    </parameter>
    <title>
        <band height="70">
            <textField>
                <reportElement x="10" y="10" width="300" height="15"/>
                <textElement>
                    <font fontName="Sharp Dawn"/>
                </textElement>
                <textFieldExpression><![CDATA[NumberFormat.getCurrencyInstance(new Locale("zh", "CN")).format($P{value})]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="10" y="25" width="300" height="15"/>
                <textElement>
                    <font fontName="Sharp Dawn"/>
                </textElement>
                <textFieldExpression><![CDATA[NumberFormat.getCurrencyInstance($P{REPORT_LOCALE}).format($P{value})]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="3" y="40" width="300" height="15"/>
                <textFieldExpression><![CDATA[NumberFormat.getCurrencyInstance($P{REPORT_LOCALE}).format($P{value})]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="3" y="55" width="300" height="15"/>
                <textFieldExpression><![CDATA[NumberFormat.getCurrencyInstance(new Locale("zh", "CN")).format($P{value})]]></textFieldExpression>
            </textField>
        </band>
    </title>
</jasperReport>
 类似资料:
  • 问题内容: 我正在使用我给定的语言环境获取自定义货币格式。但是,这始终包含我不需要的货币符号,我只想要给定语言环境的正确货币数字格式而没有货币符号。 做一个抛出一个异常.. 问题答案: 以下作品。这有点丑陋,但可以履行合同: 您还可以从货币格式中获取模式,删除货币符号,然后从新模式中重构新格式:

  • 我在运行这个代码时遇到了一个问题。我总是收到这样的消息:“文档没有页面”,在pdf文件中有一个空白页。 注意:我使用的是NetBeans IDE7.2测试版。 null 这是我的代码: 我真的很感激你的帮助。

  • 我试图在jrxml中创建表格。表格中的列数可能会很大,当我试图以PDF格式导出报告时,由于列数很大,数据变得不可读。有什么方法可以让我们以更大的页面尺寸(如A3)导出报告,或者在A4尺寸上增加滚动功能。注意:报告只需要导出为pdf格式,而不是CSV或任何其他格式。 谢谢,任何帮助感谢。

  • 问题内容: 我正在尝试根据语言环境获取货币符号。但是,它不是返回符号,而是返回代码。我有一个摘要: 对于 Locale.US, 它给出了符号,但是如果我替换 与 然后,用符号代替国家代码。为什么会这样以及如何获取符号? 编辑: 在寻找了一些答案之后,我想清除一下,设置一些特定的默认本地不是解决方案,因为 我需要一次显示所有可用的符号 。 例如 会给我欧元符号,但对于美元,它将给出代码,而不是美元符

  • 问题内容: 存在以下格式的一些 现有代码 ,用于格式化数值: 请注意,我 无法更改代码本身 -我只能更改提供给代码的格式模式。 输出默认语言环境的货币符号的格式模式是什么?本质上,我想实现以下输出: 问题答案: 考虑到您所给的限制,我认为这是不可能的。要获取当前语言环境的货币符号,您需要最少的代码。 如果绝对没有办法向程序中添加代码,则最好使用已建立的符号“ currency ”(¤)。正是出于这

  • 我得到的设备与非英语语言环境,英语货币格式如下: 1 $ 如果我有英语语言环境,我会得到欧元,比如: € 1 使用 在留档中找到: http://developer.android.com/reference/java/util/Currency.html#getSymbol() 返回区域设置中该货币的本地化货币符号。也就是说,给定“USD”和区域设置。在美国,你会得到“$”,但如果是“USD”和