让我描述一个情况:我有一个报表 A 和子报表 B 和 C。A 使用 B,B 使用 C。ASUBREPORT_DIR
中的默认值是$P{CUSTOM_SUBREPORT_DIR}
。在 A.jrxml 我看到:
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA[$P{CUSTOM_SUBREPORT_DIR}]]></defaultValueExpression>
</parameter>
<parameter name="CUSTOM_SUBREPORT_DIR" class="java.lang.String">
<defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>
我还需要一个适当的SUBREPORT_DIR
in B 值,所以我使用 iReport (Subreport properties/Parameters) 传递了它,所以A.jrxml
我有:
<subreportParameter name="SUBREPORT_DIR">
<subreportParameterExpression><![CDATA[$P{SUBREPORT_DIR}]]></subreportParameterExpression>
</subreportParameter>
当我尝试生成报告时,AI 得到net.sf.jasperreports.engine.JRException: Incompatible java.lang.Integer value assigned to parameter SUBREPORT_DIR in the B dataset.
我确定这$P{SUBREPORT_DIR}
不是整数,SUBREPORT_DIR
B 子报表中的参数类型是字符串。我使用 iReport 4.0.2 制作的所有报告。