JasperReports
Création manuelle de modèles : Eléments graphiques
Zones
Pour afficher des éléments dans un rapport, il faut utiliser les zones définies par JasperReports. Les zones existantes ont déjà été présentées dans la partie JasperReports>Présentation. Je vais vous présenter ici la balise title uniquement, mais le fonctionnement est le même quelle que soit la zone :
<title> <band height="79"> ... </band> </title>
Au sein d'une balise définissant une zone, il faut tout d'abord y définir une bande qui permet d'indiquer la hauteur de la zone (attention aux unités) puis c'est dans cette bande que nous allons ajouter nos éléments graphiques à afficher.
Texte statique
Pour afficher un texte statique, on utilise la balise staticText. Dans cette balise on retrouve la balise reportElement (balise utilisée pour tous les éléments graphiques) qui permet de donner les dimensions de l'objet ainsi que sa position. Dans l'exemple ci-dessous, j'ai aussi ajouté la balise textElement qui permet pour des éléments contenant du texte de définir l'alignement, la taille de la police et différentes options comme l'italique, le gras ou le souligné par exemple. Enfin, le contenu du texte doit se trouver dans une section CDATA au sein de la balise text :
<staticText> <reportElement x="0" y="0" width="555" height="79"/> <textElement textAlignment="Center"> <font size="66" isBold="true"/> </textElement> <text><![CDATA[Texte ...]]></text> </staticText>
Texte dynamique
L'objectif du reporting, c'est aussi d'afficher des valeurs variables. Pour cela, nous allons utiliser la balise textField qui permet d'afficher des expressions. Une fois n'est pas coutume, on commence par la balise reportElement pour indiquer la position du texte dans la zone ainsi que sa taille. Puis nous ajoutons une balise textFieldExpression dans laquelle nous allons mettre dans une section CDATA une expression à afficher. Cette expression peut être un calcul, une variable ou directement la valeur d'un champs par exemple :
<textField> <reportElement x="444" y="0" width="111" height="20"/> <textFieldExpression><![CDATA[$F{ORDERID}]]></textFieldExpression> </textField>
Image
Dernier exemple d'élément graphique qu'il est possible d'intégrer dans un rapport, une image. Une fois de plus, on retrouve la balise reportElement qui permet de définir la position de l'image et sa taille. Puis une balise imageExpression pour indiquer le chemin vers l'image :
<image> <reportElement x="204" y="0" width="179" height="253"/> <imageExpression><![CDATA["/.../.../image.jpg"]]></imageExpression> </image>
Dans cette partie, vous avez pu voir des balises utilisées pour afficher du contenu dans vos rapports, mais cette liste n'est pas exhaustive, il en existe bien plus. Je vous propose donc d'utiliser un éditeur graphique pour faciliter la création de modèles et générer automatiquement ce fichier XML.