根据jasper报告中的参数传递更改数字格式

时间:2016-04-19 05:28:42

标签: jasper-reports

我的查询是 当用户选择德语时,该号码应以格式显示 - 千分隔应该是, 小数点分隔符应该是。

当所选语言为英语时,该号码应以以下格式显示 - 千分隔应该是。 (标准) 小数分隔符应该是,(标准)

我们可以根据参数更改来更改数字格式吗?

2 个答案:

答案 0 :(得分:0)

可以通过在iReport中更改该特定字段的属性设置来完成,也可以直接在xml文件中更改。

你可以从下面的代码中获取refrance。

<?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="format_as_current" pageWidth="595" pageHeight="842" 
whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20"   
rightMargin="20" topMargin="20" bottomMargin="20">
<parameter name="intParam" class="java.lang.Integer">
    <defaultValueExpression><![CDATA[12345678]]></defaultValueExpression>
</parameter>
<parameter name="strParam" class="java.lang.String">
    <defaultValueExpression><![CDATA["12345678.95"]]></defaultValueExpression>
</parameter>
<title>
    <band height="79" splitType="Stretch">
        <textField>
            <reportElement x="137" y="18" width="291" height="20"/>
            <textElement/>
            <textFieldExpression><![CDATA[new java.text.DecimalFormat("$ #,##0.00").format($P{intParam})]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="137" y="48" width="291" height="20"/>
            <textElement/>
            <textFieldExpression><![CDATA[new java.text.DecimalFormat("$ #,##0.00").format(Double.valueOf($P{strParam} != null && $P{strParam}.length() > 0 ? Double.valueOf($P{strParam}) : 0))]]></textFieldExpression>
        </textField>
    </band>
</title>

答案 1 :(得分:0)

对于任何报告,都有一个名为$ P {REPORT_LOCALE}的参数 您可以使用此参数来定义数字的格式。使用第三个参数,我们称之为$ P {Number_format},你可以根据语言环境定义这种格式。