JasperReports本地化:在$ R {}中使用表达式

时间:2013-11-25 10:01:05

标签: localization jasper-reports

我需要在 JasperReports 报告中本地化字段值。例如,在我的SQL查询中,我有一个Gender字段。如果它的值为 1 ,我希望它显示男性和 0 女性。

我在报告的文本字段中有以下内容

$R{"gender" + $F{GENDER}}

然后在我的report.properties文件中

gender1=Male
gender0=Female

但这不起作用我在解析语句时遇到错误。

是否有人知道如何做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以使用 str()函数,而不是使用$R{}表达式。

试试这个表达式:

<textFieldExpression><![CDATA[str("gender" + $F{Gender})]]></textFieldExpression>

样本

csv数据源( names.csv )文件:

Name,Gender
Mikle,1
Lisa,0
John,1
Linda,0

属性文件( genders.properties ):

gender1=Male
gender0=Female

jrxml 文件:

<?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="genders" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" resourceBundle="genders" uuid="1ceeef64-2e53-404a-ae1b-9896b8b749cf">
    <queryString>
        <![CDATA[]]>
    </queryString>
    <field name="Name" class="java.lang.String"/>
    <field name="Gender" class="java.lang.String"/>
    <detail>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement uuid="6b27452c-b5f1-4aa3-a4f2-9ae239ff244c" x="0" y="0" width="106" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{Name}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="b0fcb296-b20b-4171-803d-639754edbc31" x="106" y="0" width="162" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{Gender}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="587d47c0-3908-464b-852a-3009e98def01" x="268" y="0" width="287" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[str("gender" + $F{Gender})]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

结果将是(通过 iReport 中的预览):

enter image description here