Pour personnaliser une case en fonction du contenu,
une des méthodes possibles, et qui a ma préférence,
est d'utiliser les styles conditionnels.
Un style est un ensemble de propriétés caractérisant des classes d'objets utilisées à l'intérieur d'un rapport. Un style conditionnel est un sous-ensemble d'un style conditionné par la valeur d'une expression logique : le style est appliqué si l'expression logique est "vraie".
Prenons pour exemple le cas d'un TextField affichant le Field F1 dont on veut positionner la couleur de fond en fonction du contenu de F1 : Vert si le champ est positif ou nul et rouge sinon. On suppose que l'on utilise iReport NB.
On va donc commencer par définir un nouveau style "ST1" dans le rapport en allant tout en haut dans le Report Inspector et en cliquant droit sur Styles et choisissant Ajouter puis Style. On va dans Propriétés, on modifie le nom en mettant "ST1" et on positionne éventuellement des éléments de styles à appliquer à la case quel que soit le contenu.
Toujours dans le Report Inspector On clique droit sur le style ST1 et on fait Ajouter Conditional Style. On va dans Propriétés de ce nouveau style, on définit une condition :
Et on positionne la propriété Backcolor à une valeur de Vert grâce à la palette de couleur. On positionne éventuellement d'autres propriétés associées au fond vert.
On réitère le step précédent mais en définissant une condition :
Et en positionnant une valeur de rouge pour la propriété Backcolor.
Ensuite on sélectionne le TextField concerné et on positionne sa propriété Style à ST1.
Lors de l'exécution, le TextField aura bien comme couleur de fond la couleur définie en fonction de son contenu.
|