OVH Cloud OVH Cloud

[JASPERREPORT] Comment 'monter' une zone si une autre n'est pas imprimée ?

1 réponse
Avatar
yves piel
Bonjour,
Je débute avec Jasperreport. J'ai commencé par faire de petits rapports
directement en créant le fichier XML. Maintenant j'utilise le plugin
jasperassistant pour Eclipse qui est très bien fait :)
Cependant il y a une chose que je n'arrive pas à faire et qui pourtant
doit être courante et donc prévue dans jasper, la voici :
Dans mon rapport j'imprime plusieurs lignes les une en dessous des
autres. Chaque ligne est un champs de ma requête avec un libellé devant
("libellé : "+$F{lechamsp}). J'ai mis une condition sur chacune de ces
zone pour qu'elle ne soit pas imprimée si le champs est vide. Ainsi,
même le libellé n'est pas imprimée. Cependant, ça crée des lignes
blanches ! Je voudrais pouvoir remonter les zones se trouvant en dessous
d'une autre non imprimée.

Comment faire ?
merci :)

Exemple :
rapport avec tous les champs :

nom : dupont
prénom : jean
tel : 020202020202
addresse : rue des duponts
mail : dupont@server.fr
portable : 060606060606
ville :vannes

Voici ce que j'ai si des champs n'ont pas été rempli :

nom : dupont
prénom : jean

addresse : rue des duponts


ville :vannes

et voici ce que je voudrais avoir mais je n'y arrive pas :(


nom : dupont
prénom : jean
addresse : rue des duponts
ville :vannes

1 réponse

Avatar
yves piel
yves piel wrote:
Bonjour,
Je débute avec Jasperreport. J'ai commencé par faire de petits rapports
directement en créant le fichier XML. Maintenant j'utilise le plugin
jasperassistant pour Eclipse qui est très bien fait :)
Cependant il y a une chose que je n'arrive pas à faire et qui pourtant
doit être courante et donc prévue dans jasper, la voici :
Dans mon rapport j'imprime plusieurs lignes les une en dessous des
autres. Chaque ligne est un champs de ma requête avec un libellé devant
("libellé : "+$F{lechamsp}). J'ai mis une condition sur chacune de ces
zone pour qu'elle ne soit pas imprimée si le champs est vide. Ainsi,
même le libellé n'est pas imprimée. Cependant, ça crée des lignes
blanches ! Je voudrais pouvoir remonter les zones se trouvant en dessous
d'une autre non imprimée.

Comment faire ?
merci :)

Exemple :
rapport avec tous les champs :

nom : dupont
prénom : jean
tel : 020202020202
addresse : rue des duponts
mail :
portable : 060606060606
ville :vannes

Voici ce que j'ai si des champs n'ont pas été rempli :

nom : dupont
prénom : jean

addresse : rue des duponts


ville :vannes

et voici ce que je voudrais avoir mais je n'y arrive pas :(


nom : dupont
prénom : jean
addresse : rue des duponts
ville :vannes


J'aitrouvé : il faut mettre l'attribut isRemoveLineWhenBlank="true" dans
la balise reportElement.
Exemple :


<textField>
<reportElement positionType="Float" x="0" y="223" width="398"
height="13" isRemoveLineWhenBlank="true">

<printWhenExpression><![CDATA[new
Boolean($F{sinistre}.compareTo("") != 0)]]></printWhenExpression>
</reportElement>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA["Sinistré :
"+$F{sinistre}]]></textFieldExpression>
</textField>