我的主报告中有一份子报告。
如果子报告没有返回任何行,我需要隐藏文本。
我试图获取子报表的记录数,在主报表中添加一个新变量,并将其设置为return values
subreport(for rount_count)
属性中的目标变量,但是当我运行主报表时,值变量为null
答案 0 :(得分:6)
计算子报告中的记录
在主报告
中定义变量<subreport>
<reportElement x="100" y="20" width="400" height="20" uuid="a7a89ebb-54d4-4b6e-8c9f-c107e8a40bbb"/>
<dataSourceExpression><![CDATA[... your datasource ...]]></dataSourceExpression>
<returnValue subreportVariable="REPORT_COUNT" toVariable="subReportCount"/>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "Your_subreport.jasper"]]></subreportExpression>
</subreport>
调用子报表时,将返回参数设置为变量
textField
此变量现在可以在textField
中使用,但是您需要小心,因为textField
需要在正确的时间(在执行子报告之后)进行评估。
<textField evaluationTime="Report" pattern="###0">
<reportElement positionType="Float" x="300" y="60" width="200" height="20" uuid="125aa2d0-3d4e-4377-bed1-b4531c9142c9"/>
<textElement textAlignment="Right" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$V{subReportCount}]]></textFieldExpression>
</textField>
上的媒体资源为evaluationTime
实施例
evalutationTime="Band"
评估时间:
自动评估时间,表示参与的每个变量 表达式应在发动机决定的时间进行评估 乐队元素将在乐队结束时进行评估 列一个常量,指定在填充每列后应计算表达式 组一个常量,指定在每次分组后应评估表达式 主用于主报告结束时评估的元素 现在一个常量,指定表达式应在填充过程中的恰好时刻进行评估。
页面一个常量,指定在填充每个页面后应评估表达式。
报告一个常量,指定应在填充过程结束时评估表达式。
一般情况下使用子报告
evalutationTime="Report"