JasperReports
Présentation
JasperReports est une librairie Java de reportingTechnique informatique de préparation de ces rapports, consistant à extraire des données pour les présenter dans un rapport plus facilement lisible, voire pédagogique ou de vulgarisation pour les données complexes (affichable ou imprimable). On parle alors d'informatique décisionnelle, du fait que ces rapports constituent une aide à la décision par la visualisation de la situation présente (sous forme de statistiques, évolutions temporelles, cumuls et sous-totaux, etc) qu'ils dévoilent. Open Source sous licence LGPLLa LGPL autorise à lier un programme sous cette licence à du code non LGPL, sans pour autant révoquer la licence. Cette Licence LGPL permet donc de s'affranchir du caractère héréditaire de la licence GPL., qui permet de créer des rapports en utilisant des "modèles" au format XML/JRXML. Ces rapports peuvent ensuite être exportés sous différents formats comme PDF ou HTML par exemple. Il est aussi possible d'afficher les rapports à l'écran directement après la génération.
Les données qui seront utilisées dans les rapports peuvent provenir de différentes sources comme des bases de données, des objets Java (Beans, EJB) ou encore des fichiers (XML, CSV par exemple).
La librairie étant en Java, cela lui permet d'étre facilement intégrée dans les applications Java, y compris les applications JEE.
Premier rapport généré avec JasperReports
Introduction aux modèles
Zones
Dans un premier temps, il faut savoir qu'un rapport est composé de plusieurs zones. Ces zones sont (verticalement):
- title : Titre du rapport, cette zone n'apparaîtra qu'une fois par rapport
- pageHeader : En tête de page, cette zone apparaîtra une fois par page
- columnHeader : En tête de colonne, cette zone apparaîtra une fois par page
- detail : Zone principale du rapport, c'est cette dernière qui sera répétée autant de fois qu'il y a de résultats dans la source de données.
- columnFooter : Pied de colonne, cette zone apparaîtra une fois par page
- pageFooter : Pied de page, cette zone apparaîtra une fois par page
- lastPageFooter : Pied de dernière page, cette zone apparaîtra une fois par rapport, sur la dernière page
- summary : Résumé, zone qui n'apparaîtra qu'une fois par rapport.
Au sein de ces zones, JasperReports utilise des bandes (band) pour définir notamment la hauteur de la zone et c'est ensuite dans ces bandes que les éléments graphiques seront placés.
Zones d'un rapport