【问题标题】:JasperReports localization: using expression in $R{}JasperReports 本地化:在 $R{} 中使用表达式
【发布时间】:2013-11-26 17:42:34
【问题描述】:

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

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

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

然后在我的 report.properties 文件中

gender1=Male
gender0=Female

但这不起作用我在解析语句时出错。

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

【问题讨论】:

  • 该变量看起来是完美的解决方案,但是需要为每一行评估该变量。我该怎么做?

标签: localization jasper-reports


【解决方案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 中的预览):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2017-09-29
    相关资源
    最近更新 更多