2010-07-11 22 views
5

J'utilise JasperReports et iReport (sortie au format PDF), et j'ai un problème avec un certain rapport:Comment faire pour que les groupes JasperReports commencent sur une nouvelle page uniquement lorsque cela est nécessaire?

J'ai défini un groupe dans le rapport. En moyenne, chaque "instance" de ce groupe ne contient qu'un petit nombre de lignes de détail, donc je ne veux pas que chacune d'entre elles commence sur une nouvelle page, car ce serait une perte de papier (la sortie est imprimée sur papier).

Mais d'un autre côté, je ne veux pas qu'un groupe commence sur une page et se termine sur la suivante. Par exemple, si sur la page 1 je peux ajuster les deux premiers groupes et la moitié du troisième groupe, je veux que le troisième groupe entier commence à la page 2, et ainsi de suite.

Y a-t-il un moyen de le faire?

Répondre

6

La propriété <group>keepTogether fait exactement ce que vous voulez! Il a été ajouté autour de Jasper 3.6.2, voir this discussion.

Alors:

<group name="CITY" keepTogether="true"> 
    <groupExpression><![CDATA[$F{CITY}]]></groupExpression> 
    <groupHeader> 
    ... 
    </groupHeader> 
</group> 
0

Cliquez droit sur la bande de détail et Ajouter une autre bande Détail. Vous pouvez grouper votre page en utilisant ces blocs de bande de détail.

Ajouter une hauteur suffisante pour chaque bande afin qu'il ne se chevauchent pas sur la nouvelle page

0

Pour afficher les données de groupe dans une autre page dans le composant de tableau, nous devons définir les propriétés suivantes. Droit sur le nom du groupe -> Propriétés avancées -> sélectionnez une nouvelle page comme vraie.

  1. Observez la sortie, les données de groupe sont affichées dans une nouvelle page.

Cordialement,

Harish

9

La propriété « groupe » KeepTogether et isStartNewPage résoudra votre problème et rend résultat groupe et commence toujours nouveau groupe de la nouvelle page.

<group name="CITY" isStartNewPage="true" keepTogether="true"> 
    <groupExpression><![CDATA[$F{CITY}]]></groupExpression> 
    <groupHeader> 
    ... 
    </groupHeader> 
</group>