你正确的表达方式可能是这样的:
<textFieldExpression><![CDATA[utils.Hello.hello()]]></textFieldExpression>
工作样本:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ..>
<queryString>
<![CDATA[SELECT DISTINCT city FROM address ORDER BY city]]>
</queryString>
<field name="CITY" class="java.lang.String"/>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{CITY}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="100" y="0" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[utils.Hello.hello()]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
您还可以在报告中添加导入指令。在这种情况下,表达式将是:
<textFieldExpression><![CDATA[Hello.hello()]]></textFieldExpression>
工作样本:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ... whenNoDataType="AllSectionsNoDetail">
<import value="utils.Hello"/>
<title>
<band height="41">
<textField>
<reportElement x="188" y="11" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[Hello.hello()]]></textFieldExpression>
</textField>
</band>
</title>
</jasperReport>
注意:对于这两个示例,jar文件(带有utils.Hello类)必须在类路径中。
您可以在此处找到有关使用 srciptlets 的更多信息。