我需要在 JasperReports 报告中本地化字段值。例如,在我的SQL查询中,我有一个Gender字段。如果它的值为 1 ,我希望它显示男性和 0 女性。
我在报告的文本字段中有以下内容
$R{"gender" + $F{GENDER}}
然后在我的report.properties文件中
gender1=Male
gender0=Female
但这不起作用我在解析语句时遇到错误。
是否有人知道如何做到这一点。
答案 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 中的预览):