Framework JasperReports tutoriel avancé
Framework JasperReports tutoriel avancé
...
JasperReports est une bibliothèque de rendu de contenu, pas une application autonome. Il ne peut pas fonctionner seul et doit être intégré à une autre application Java côté client ou serveur. JasperReports est une bibliothèque Java pure et peut être utilisé sur toute plate-forme prenant en charge Java. En tant que bibliothèque, JasperReports est totalement agnostique quant à l’environnement dans lequel il est utilisé pour générer des rapports.
Même si toutes ses fonctionnalités de création de rapports sont disponibles dans ce fichier JAR unique, JasperReports s'appuie sur d'autres bibliothèques tierces pour les fonctionnalités requises connexes telles que l'analyse syntaxique XML, la journalisation et la génération de PDF et XLS. Comme JasperReports est une bibliothèque et ne peut pas fonctionner seul, vous ne l'installez pas vraiment. "Installer" JasperReports signifie simplement télécharger son fichier JAR et le placer dans le chemin de classe de votre application avec les autres fichiers JAR requis.
EXIGENCES
JasperReports ne gère que les rapports. Il s'appuie sur des bibliothèques et des API tierces pour exécuter les fonctionnalités requises telles que l'analyse XML, la connectivité de base de données, la sortie PDF ou XLS, etc.
Cette section contient toutes les bibliothèques dont JasperReports peut avoir besoin, en fonction des fonctionnalités requises par l’application parent de JasperReports.
Les deux types d'exigences d'utilisation de JasperReports sont les suivants:
Requirements Exigences absolues, nécessaires quel que soit le module de JasperReports réellement utilisé.
Requirements Exigences facultatives, nécessaires uniquement pour une fonction JasperReports spécifique. (Si une application particulière de JasperReports n'est pas utilisée par l'application parent, vous pouvez ignorer les bibliothèques requises par ce module au moment du déploiement.)
………
Qu'est-ce qu'un rapport?
Un rapport est une présentation d'informations significative, bien définie et résumée. Habituellement, les activités de routine sont automatisées et les données résumées dans un "rapport" d'aide à la décision. Les rapports représentent des données désordonnées habituelles dans des tableaux, des graphiques et d'autres formes de représentations graphiques.
JasperReports
Vous trouverez ci-dessous les problèmes courants rencontrés lors de l’établissement du rapport:
- Modifications principales: en règle générale, pour refléter les modifications ou les améliorations de l'entreprise, il est nécessaire de modifier la logique principale du rapport.
- Exportation des résultats: votre rapport peut être exporté dans une grande variété de formats, tels que: HTML, Texte, PDF, MS Excel, RTF, ODT, valeurs séparées par des virgules, XML ou images.
- Rapports complexes: les rapports de sous-rapports et de tableaux croisés en sont un bon exemple.
- Rapports de graphiques: graphiques visuels, par exemple, séries Graphique, Graphique à secteurs, Ligne XY, Barres, Compteur et Temps.
Afin de supprimer la surcharge des points mentionnés ci-dessus et de faciliter le processus de reporting, de nombreux frameworks, outils, bibliothèques et applications tierces ont été introduits. JasperReports est l'un d'entre eux.
JasperReports est un moteur de reporting Java open source. Il est basé sur Java et n'a pas sa propre syntaxe d'expression. JasperReports est capable de fournir un contenu riche à l'écran, à l'imprimante ou au format PDF, HTML, XLS, RTF, ODT, CSV, TXT et XML. Comme il ne s’agit pas d’un outil autonome, il ne peut pas être installé seul. Au lieu de cela, il est intégré aux applications Java en incluant sa bibliothèque dans le CLASSPATH de l'application. JasperReports est une bibliothèque de classes Java, et n'est pas destiné aux utilisateurs finaux, mais plutôt aux développeurs Java qui ont besoin d'ajouter des fonctionnalités de création de rapports à leurs applications.
Caractéristiques de JasperReports
Certaines des caractéristiques importantes de JasperReports sont:
- La présentation du rapport est flexible.
- Il peut présenter des données textuellement ou graphiquement.
- Les développeurs peuvent fournir des données de plusieurs manières.
- Il peut accepter des données provenant de plusieurs sources de données.
- Il peut générer des filigranes (un filigrane est semblable à une image secondaire posée sur l’image principale).
- Il peut générer des sous-rapports.
- Il est capable d’exporter des rapports dans divers formats
JasperReports est une bibliothèque Java pure et non une application autonome. Il ne peut pas fonctionner seul et doit donc être intégré à un autre client ou à une application Java côté serveur. Comme il est basé sur Java, il peut être exécuté sur n’importe quelle plate-forme prenant en charge Java (JDK 1.3 et supérieur). Toutes les fonctionnalités de JasperReport sont regroupées dans un seul fichier JAR, jasperreports-x.x.x.jar. Ce fichier JAR ainsi que les bibliothèques obligatoires et facultatives (fichier .ZIP) peuvent être téléchargés à partir du site: JasperReport Library Link. Téléchargez la dernière version à partir de ce lien. Le fichier ZIP comprend le fichier JAR JasperReports, le code source de JasperReports, les fichiers JAR dépendants et de nombreux exemples illustrant les fonctionnalités de JasperReport.
JasperReport Environment
Pour commencer à créer les rapports, nous devons préparer l’environnement. Extrayez le fichier JasperReport.ZIP téléchargé vers n’importe quel emplacement (dans notre cas, nous l’avons extrait dans C: \ tools \ jasperreports-5.0.1). La structure de répertoire du fichier extrait est identique à celle illustrée ci-dessous:
…
Voici le détail de tous les répertoires:
- build: contient les fichiers de classe JasperReport compilés.
- démo: contient divers exemples illustrant plusieurs aspects de la fonctionnalité de JasperReports.
- dist: contient le fichier jasperreports-x.x.x.jar. Nous allons ajouter ce fichier JAR à notre CLASSPATH pour tirer parti de JasperReports.
- docs: contient une copie locale de la documentation JasperReports.
- lib: contient tous les JAR nécessaires, à la fois pour construire JasperReports et pour l'utiliser dans nos applications.
- src: contient le code source de JasperReports.
- build.xml: fichier de construction ANT permettant de générer le code source de JasperReports. Si nous n'avons pas l'intention de modifier JasperReports, nous n'avons pas besoin d'utiliser ce fichier car JasperReports est distribué sous la forme compilée.
- changes.txt: document texte expliquant les différences entre la version actuelle et la version précédente de la bibliothèque de classes JasperReports.
- license.txt: document texte contenant le texte intégral de la licence LGPL (Lesser General Public License).
- readme.txt: document texte contenant des instructions sur la création et l'exécution des exemples fournis.
Fondamentalement, nous utilisons uniquement jasperreports-x.x.x.jar sous la dist et les JAR sous le répertoire lib pour générer des rapports. Comme JasperReports étant un outil open source, si un défaut ou un bogue est reconnu lors de l'exécution dans le fichier jasperreports-x.x.x.jar, nous pouvons le réparer et générer à nouveau le fichier JAR à l'aide du fichier build.xml.
Définir le CLASSPATH
Pour utiliser JasperReport, nous devons définir les fichiers suivants dans notre CLASSPATH:
- jasperreports-x.x.x.jar, où x.x.x est la version de JasperReports. Ceci se trouve dans le répertoire C: \ tools \ jasperreports-x.x.x \ dist).
- Tous les fichiers JAR du sous-répertoire lib (C: \ tools \ jasperreports-x.x.x \ lib).
Au moment de l'installation, nous utilisions JasperReport version 5.0.1. Faites un clic droit sur 'Poste de travail' et sélectionnez 'Propriétés', puis cliquez sur le bouton 'Variables d'environnement' sous l'onglet 'Avancé'. Maintenant, mettez à jour la variable 'Path' avec ce C: \ tools \ jasperreports5.0.1 \ dist \ jasperreports-5.0.1.jar: C: \ tools \ jasperreports-5.0.1 \ lib. Vous êtes maintenant prêt à créer vos rapports.
Dans tous les exemples de ce tutoriel, nous avons utilisé des tâches ANT pour générer des rapports. Le fichier de construction permet d'importer tous les fichiers JAR requis pour générer des rapports. Par conséquent, définir CLASSPATH comme indiqué ci-dessus aidera uniquement ceux qui souhaitent générer des rapports sans utiliser ANT.
………
Les modèles JRXML (ou fichiers JRXML) de JasperReport sont des fichiers XML standard portant l'extension .jrxml. Tous les fichiers JRXML contiennent une balise, en tant qu'élément racine. Celui-ci contient à son tour de nombreux sous-éléments (tous optionnels). La structure JasperReport peut gérer différents types de sources de données. Dans ce tutoriel, nous montrerons comment générer un rapport de base, simplement en transmettant une collection d'objets de données Java (à l'aide de beans Java) au moteur JasperReport. Le rapport final doit afficher une liste de personnes avec les catégories, y compris leurs noms et pays.
Les étapes suivantes sont décrites dans ce chapitre pour décrire - comment concevoir un rapport Jasper:
- Créer un modèle de rapport JRXML et
- Aperçu du modèle de rapport XML.
… …
être utilisé directement pour générer des rapports. Il doit être compilé au format binaire natif de JasperReport, appelé fichier Jasper. Lors de la compilation, nous transformons l'objet JasperDesign en objet JasperReport:
L'interface net.sf.jasperreports.engine.design.JRCompiler joue un rôle central lors de la compilation. Cette interface a plusieurs implémentations selon le langage utilisé pour les expressions de rapport, qui peuvent être écrites en Java, Groovy, JavaScript ou tout autre langage de script, à condition que l'implémentation du compilateur puisse l'évaluer au moment de l'exécution.
Nous pouvons compiler le fichier JRXML des deux manières suivantes:
- compilation programmatique.
- Compilation par la tâche ANT.
Compilation programmatique de JRXML
L'API JasperReports propose une classe de façade net.sf.jasperreports.engine.JasperCompileManager pour la compilation d'un JasperReport. Cette classe comprend plusieurs méthodes statiques publiques permettant de compiler des modèles de rapport. Les sources des modèles peuvent être des fichiers, des flux d’entrée et / ou des objets de mémoire.
…
Compilation via ANT Task
La compilation de modèles de rapport ressemblant davantage à un travail de conception qu'à un travail d'exécution, la bibliothèque JasperReport a une tâche ANT personnalisée. Dans certaines situations, lorsque le fichier JRXML est créé à l'exécution, nous ne pouvons pas utiliser cette tâche ANT. La tâche ANT personnalisée s'appelle JRC et est implémentée par la classe: net.sf.jasperreports.ant.JRAntCompileTask. Sa syntaxe et son comportement sont très similaires à la tâche ANT intégrée.
Compilation de modèles
Ajoutons une nouvelle compilation compilereportdesing à notre build.xml existant. Ici, le dossier source est spécifié à l'aide d'une balise imbriquée avec les ensembles de fichiers. La balise source imbriquée permet de compiler des modèles de rapport dispersés dans de nombreux emplacements différents et non regroupés dans un seul dossier source de rapport racine.
