Pour développer et suggérer une extension du commentaire d'Alex, vous pouvez mettre en page chaque section que vous avez en tête dans un frame
dans le pied de page. Définissez ensuite printWhenExpression
pour chaque image au lieu d'un groupe d'éléments.
Par exemple:
<?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="report3" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="0" bottomMargin="0" uuid="35abc101-1375-42c5-9f5f-2eb3542ca382">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="footerPrint" class="java.lang.String">
<defaultValueExpression><![CDATA["1"]]></defaultValueExpression>
</parameter>
<pageFooter>
<band height="51">
<frame>
<reportElement uuid="c8bef919-0e83-4d72-9b25-1a7e0aa6b82b" x="0" y="0" width="555" height="20">
<printWhenExpression><![CDATA[$P{footerPrint}.equals("1")]]></printWhenExpression>
</reportElement>
<staticText>
<reportElement uuid="4ad1f177-9e43-4d9f-8f05-012090c33193" x="0" y="0" width="100" height="20"/>
<textElement/>
<text><![CDATA[Footer Print: 1]]></text>
</staticText>
</frame>
<frame>
<reportElement uuid="c8bef919-0e83-4d72-9b25-1a7e0aa6b82b" x="0" y="0" width="555" height="20">
<printWhenExpression><![CDATA[$P{footerPrint}.equals("2")]]></printWhenExpression>
</reportElement>
<staticText>
<reportElement uuid="4ad1f177-9e43-4d9f-8f05-012090c33193" x="0" y="0" width="100" height="20"/>
<textElement/>
<text><![CDATA[Footer Print: 2]]></text>
</staticText>
</frame>
</band>
</pageFooter>
</jasperReport>
Les cadres sont fixés aux mêmes dimensions et de repos sont fixées aux coordonnées exactes mêmes x/y. Donc, essentiellement, ils se chevauchent, mais si vous faites correctement les expressions, une seule sera affichée à la fois de toute façon.
Bien sûr, l'autre option consiste à définir l'expression pour chaque élément, je trouve juste que c'est plus facile.
Vous pouvez ajouter autant de * textField *, * frame * et d'autres éléments à cette bande que vous le souhaitez. Vous pouvez utiliser l'expression * textFieldExpression * et * printWhenExpression * pour déterminer ce que vous voulez afficher. –