You should put the caption text inside in a subreport, for example, in a titlerange
Subtitled
<title>
<band height="38">
<textField>
<reportElement x="10" y="0" width="100" height="20" uuid="4b8ece47-1608-4d08-bc0b-e6b73bcf8346"/>
<textFieldExpression><![CDATA["TITLE"]]></textFieldExpression>
</textField>
</band>
</title>
Make sure you don't have the whenNoDataType attribute in the tag jasperReport, so it uses the default valueNoPages
If there are no entries in the subreport, the attribute whenNoDataType=NoPages(by default) ensures that nothing is returned and you do not see the header.
( - ), printWhenExpression evalutationTime="Report"
, .
report_count iReport