Tutoriel JasperReports : À quoi sert JasperReports ? Java?
⚡ Résumé intelligent
JasperReports pour Java Jaspersoft Studio est un moteur de reporting open source qui transforme les données applicatives en documents d'une précision irréprochable. Cet article explique le cycle de vie du reporting, l'installation de Jaspersoft Studio, la création de modèles de rapports, la structure des bandes, une comparaison avec Pentaho et les limitations pratiques rencontrées par les équipes.

À quoi sert JasperReports Java?
JasperRapports est un outil de reporting open source pour Java qui sert à générer des rapports d'applications. Cet outil de reporting permet d'afficher un contenu riche à l'écran, de l'imprimer ou de l'enregistrer dans divers formats de fichiers tels que HTML, PDF, XLS, RTF, CSV, XML, ODT et TXT. JasperReports peut également être utilisé pour Java-applications compatibles comme Java EE ou applications Web pour générer du contenu dynamique.
Dans la plupart des discussions, trois noms de produits apparaissent ensemble ; les séparer dès le début permet d'éviter toute confusion par la suite sur cette page.
| Nom | En quoi ça consiste | Qui l'utilise |
|---|---|---|
| Bibliothèque JasperReports | Le Java bibliothèque qui compile, remplit et exporte des rapports | Java développeurs intégrant des rapports dans une application |
| Studio Jaspersoft | Le Eclipse concepteur visuel basé sur la production de fichiers JRXML | Les concepteurs de rapports élaborent des mises en page |
| Serveur JasperReports | Un serveur autonome qui stocke, planifie et distribue les rapports | Équipes distribuant des rapports aux utilisateurs métiers |
Cette page est consacrée à la bibliothèque et à Jaspersoft Studio, car ces deux composants suffisent pour concevoir et exécuter un premier rapport. Veuillez noter que l'édition communautaire ne comprend désormais que ces deux composants, JasperReports Server n'étant plus proposé en téléchargement communautaire.
Pourquoi utiliser les rapports Jasper ?
Voici plusieurs raisons d'utiliser un outil de reporting Jasper :
- Il offre des performances de génération de rapports et leur livraison aux utilisateurs.
- Il vous aide à représenter vos données sous forme textuelle ou graphique.
- Il s'agit d'un serveur de reporting autonome et intégré pour la compilation et l'exécution de rapports.
- Il permet un contrôle d'accès basé sur les rôles à tous les rapports du référentiel.
- Un framework Spring Security est disponible pour l'intégration avec les systèmes d'authentification internes.
- Il offre un moteur de reporting interactif sécurisé, programmé et automatisé.
- Vous pouvez intégrer des rapports dans Java ou nonJava applications.
- Différents formats de rapports peuvent être exportés.
- Il peut générer des filigranes superposés à l’image principale.
- Il offre un ensemble complet de SOAP, REST et services Web.
- Il vous permet d'utiliser des données de rapport uniques provenant de plusieurs sources de données.
Comme la bibliothèque est diffusée sous licence LGPL, elle peut être intégrée à des produits commerciaux sans frais par utilisateur, ce qui explique pourquoi beaucoup Java Les équipes le préfèrent aux moteurs de reporting propriétaires.
Caractéristiques des rapports Jasper
Nous allons maintenant aborder les fonctionnalités de JasperReports.
Voici les principales caractéristiques de l'outil Jasper Reports :
- Offre une mise en page flexible des rapports, avec des bandes, des colonnes et des zones libres.
- Les développeurs peuvent fournir des données de plusieurs manières, notamment JavaCollections de beans, requêtes SQL et documents XML.
- Il est possible de combiner plusieurs sources de données au sein d'un même rapport grâce à des sous-rapports et des adaptateurs de données.
- Des filigranes peuvent également être appliqués sur l'image principale.
- Vous pouvez générer des sous-rapports imbriqués dans une mise en page parente.
- Il vous aide à exporter des rapports dans une variété de formats comme PDF, HTML, RTF et Microsoft Fichiers Excel.
- Le moteur permet d'inclure dans les définitions de rapports des graphiques tels que des graphiques à barres, des graphiques circulaires, des graphiques linéaires et des séries chronologiques.
- Les expressions de rapport peuvent être écrites en Java, Groovy, JavaScénario.
Ces fonctionnalités sont exposées via une séquence de traitement fixe, que la section suivante décrit étape par étape.
Cycle de vie de JasperReports
Nous allons maintenant découvrir le cycle de vie de JasperReports.
Voici le déroulement général du cycle de vie de Jasper Reports :
Le schéma ci-dessus illustre les quatre étapes dans l'ordre. Chaque étape produit un fichier qui sert d'entrée à l'étape suivante, ce qui explique pourquoi la séquence ne peut jamais être inversée.
| Stage | Entrée | Sortie | Extension de fichier |
|---|---|---|---|
| Conception | Décisions d'aménagement | Modèle de rapport | .jrxml |
| Compilation | fichier .jrxml | Modèle binaire compilé | .jaspe |
| Exécuter | fichier .jasper plus données | Rapport rempli | .jrprint |
| Exportation | fichier .jrprint | Document final | .pdf, .html, .xls et autres |
Conception du rapport
La première étape consiste à créer le fichier JRXML. Il s'agit d'un simple document XML qui définit la mise en page du rapport. Vous pouvez créer ce fichier à l'aide de n'importe quel éditeur de texte ou d'un logiciel de conception de rapports.
Toutefois, si vous utilisez le concepteur de rapports, nous pouvons visualiser la mise en page du rapport, et la structure réelle du JRXML peut être ignorée.
Rédaction du rapport
Dans cette étape du cycle de vie, le JRXML construit lors de la première étape est compilé, et un objet binaire appelé fichier Jasper (fichier avec l'extension jasper) est généré.
Cette compilation est effectuée pour obtenir de meilleures performances lors de l'exécution. Ces fichiers Jasper générés doivent être livrés avec votre application pour exécuter les rapports.
Exécution du rapport
À ce stade, les données de l'application sont collectées et remplies dans le format de rapport compilé. Il existe une classe appelée net.sf.jasperreports.engine.JasperFillManager qui propose des fonctions pour remplir les données dans les rapports.
Le résultat sera enregistré dans un fichier d'impression Jasper (fichier avec l'extension jrprint) qui pourra être utilisé pour imprimer ou exporter le rapport.
Exporter le rapport au format souhaité
Dans cette dernière étape, vous devez exporter le fichier d'impression Jasper créé précédemment dans n'importe quel format à l'aide de la classe JasperExportManager. Comme Jasper propose plusieurs formats d'exportation, nous pouvons utiliser la même entrée pour créer différentes représentations des données.
Installation de Jasper Reports – Configuration de l'environnement
Voyons maintenant la procédure d'installation de JasperReports, étape par étape. Les captures d'écran ci-dessous ont été réalisées avec le programme d'installation de la version 6.9. La version communautaire actuelle est la 6.21.3, publiée le 23 avril 2024. L'ordre des écrans reste inchangé, seul le numéro de version dans le nom du fichier diffère.
Étape 1) Télécharger l'édition communautaire de Jasper Reports
Aller à cette Lien Cliquez ensuite sur l'option « Télécharger maintenant » pour installer l'édition communautaire de Jasper Reports.
Étape 2) Sélectionnez Jaspersoft Studio CE
Parmi les éditions communautaires, sélectionnez Jaspersoft Studio CE.
Étape 3) Télécharger Jaspersoft Studio
Aller à cette lien Cliquez ensuite sur le bouton Télécharger, puis ouvrez le fichier exécutable du programme d'installation téléchargé pour votre système d'exploitation.
Étape 4) Cliquez sur le bouton Accepter
L'écran suivant s'affichera. Sélectionnez le bouton « J'accepte ».
Étape 5) Choisissez l'emplacement
Sélectionnez votre emplacement d'installation et cliquez sur le bouton Suivant.
Étape 6) Les progrès sont en cours maintenant
Vous verrez la progression sur l’écran suivant.
Étape 7) Cliquez sur le bouton terminer
Dans l'écran suivant, cliquez sur le bouton Terminer.
Étape 8) Les progrès sont terminés
L'écran suivant apparaîtra dans votre fenêtre.
Étape 9) Commencer
Ensuite, cliquez sur l'option « Commencer ».
Étape 10) Commencez à travailler avec le studio Jasper Reports
L'écran suivant s'affichera et vous pourrez commencer à travailler avec Jasper Reports Studio.
Astuce : Jaspersoft Studio est un Eclipse application basée sur et nécessite une compatibilité Java Vérifiez la présence du JDK sur votre machine. Si le programme d'installation refuse de démarrer, assurez-vous que le JDK installé est bien en place avant de le réinstaller.
Création d'un exemple de modèle de rapport
Voyons maintenant comment créer un modèle de rapport dans JasperReports.
Le fichier modèle de rapport utilisé dans JasperReports est un simple fichier XML avec l'extension .jrxml. Ce fichier contient la balise `jasperReport` comme élément racine. Le framework JasperReports peut gérer différents types de sources de données.
Un modèle de rapport est conçu et créé en suivant les étapes suivantes.
Étape 1) Création du fichier JRXML dans Jaspersoft Studio.
- Allez dans l'option Fichier.
- Sélectionnez le sous-menu Nouveau.
- Cliquez sur l'option Rapport Jasper.
Étape 2) Sélection du modèle souhaité.
- Sélectionnez votre modèle, par exemple cerise.
- Cliquez sur le bouton "Suivant".
Étape 3) Sélection d'un dossier parent.
- Sélectionnez le dossier Mes rapports.
- Saisissez le nom du fichier, par exemple « Cherry Report ».
- Cliquez sur le bouton "Suivant".
Étape 4) Dans la fenêtre Source de données, cliquez sur le bouton « Nouveau » pour créer un nouvel adaptateur de données.
Étape 5) Sélection d'un adaptateur de données.
- Sélectionnez l'adaptateur de données dans la liste déroulante. Par exemple, « Collection de JavaHaricots."
- Cliquez sur le bouton "Suivant".
Étape 6) Saisie des détails de l'adaptateur de données et sélection de la classe d'usine.
- Entrez un nom pour votre adaptateur.
- Sélectionnez la classe d'usine en cliquant sur le bouton « … ».
Étape 7) Saisie du préfixe ou du modèle.
- Entrez le préfixe ou le modèle du nom.
- Cliquez sur les éléments correspondants.
- Cliquez sur le bouton «OK».
Étape 8) Définition de la classe de fabrique et ajout du chemin d'accès aux fichiers jar.
- Entrez le nom d'une méthode statique dans la classe d'usine. Dans cet exemple de rapports Jasper, il s'agit de createBeanCollection.
- Si votre JavaLa définition des beans comporte des descriptions de champs, et si vous souhaitez les utiliser comme noms dans Jaspersoft Studio, cochez la case « Utiliser la description des champs ».
- Ajoutez un chemin à vos fichiers jar.
- Cliquez sur le bouton « Terminer ».
Étape 9) Cliquez sur le bouton "Suivant".
Étape 10) Félicitations ! Vous avez correctement saisi toutes les informations nécessaires à la création du rapport. Cliquez sur le bouton « Terminer ».
Le rapport sera généré comme indiqué sur la capture d'écran ci-dessous.
Le fichier ci-dessus nécessite une compilation au format binaire JasperReport, appelé fichier Jasper.
L'interface net.sf.jasperreports.engine.design.JRCompiler, qui fait partie de la bibliothèque JasperReports, joue un rôle important dans la compilation de ce fichier modèle de rapport.
L'implémentation de cette interface peut être écrite en Java, Javascénario, Groovy, ou tout autre langage de script.
Vous pouvez compiler un fichier JRXML en utilisant les deux méthodes suivantes :
- Compilation programmatique à partir de Java code.
- Compilation utilisant un Fourmi Apache entrée.
L'extrait ci-dessous illustre le cheminement programmatique, où une ligne compile le modèle et une seconde ligne le remplit avec un JavaCollection de haricots.
import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class ReportRunner { public static void main(String[] args) throws JRException { // 1. Compile the JRXML template into a .jasper file JasperReport report = JasperCompileManager.compileReport("CherryReport.jrxml"); // 2. Fill the compiled template with a collection of beans JRBeanCollectionDataSource source = new JRBeanCollectionDataSource(EmployeeFactory.createBeanCollection()); JasperPrint print = JasperFillManager.fillReport(report, null, source); // 3. Export the filled report to PDF JasperExportManager.exportReportToPdfFile(print, "CherryReport.pdf"); System.out.println("Report exported successfully"); } }
Sortie :
Report exported successfully
Comprendre les différentes bandes de rapports
La mise en page de JasperReports est divisée en sections horizontales appelées bandes. Chaque bande possède une règle d'impression fixe, et la compréhension de ces règles permet au concepteur de contrôler précisément l'emplacement d'une valeur dans le document final.
Voici les bandes de rapports standard adoptées par la plupart des outils commerciaux de génération de rapports.
- Objet
- En-tête de page
- En-tête de colonne
- Détails
- Pied de colonne
- Pied de page
- Pied de page de la dernière page
- Résumé
- En-tête de groupe
- Pied de groupe
- Présentation
- Pas de données
Examinons en détail chaque bande de signalement.
Objet
Cette bande apparaît au début du rapport. Elle peut être placée sur sa propre première page en configurant l'attribut. isTitleNewPage="true".
En-tête de page
L'en-tête de page s'affiche au début de chaque page. Il est absent de la première page si l'en-tête de titre est utilisé, et de la dernière page si l'en-tête de résumé est utilisé avec les paramètres appropriés. isSummaryWithPageHeaderAndFooter="false".
En-tête de colonne
Les en-têtes de colonnes apparaissent avant la bande de détails sur chaque page.
Détails
La section de détails est parcourue pour chaque enregistrement de la source de données fournie. Elle peut également comporter plusieurs bandes de détails (1, 2, etc.).
Pied de colonne
Cette section apparaît sous la bande de détails sur chaque page où celle-ci est présente. Par défaut, elle se trouve en fin de page, mais vous pouvez la positionner sous la dernière bande de détails en modifiant l'attribut correspondant. isFloatColumnFooter="true".
Pied de page
Cette section sera affichée à la fin de chaque page, à l'exception de la bande de résumé, de la bande de titre et de la dernière bande non récapitulative.
Pied de page de la dernière page
Cette section apparaît sur la dernière page, à la place du pied de page habituel, lorsqu'aucune bande récapitulative n'est fournie.
Résumé
La section récapitulative n'apparaît qu'à la fin du rapport, sur une nouvelle page, lorsque isSummaryNewPage="true" est défini, et avec en-tête et pied de page lorsque isSummaryWithPageHeaderAndFooter="true" est réglé.
En-tête de groupe
Cette section n'apparaît que lorsqu'elle est définie, à chaque modification de l'expression du groupe, avant la bande de détails.
Pied de groupe
Cette section s'affiche uniquement si un groupe est défini, et systématiquement avant toute modification de l'expression du groupe, après la bande de détails.
Présentation
Il est affiché sur toutes les pages en arrière-plan de toutes les autres bandes de rapport.
Pas de données
Cette bande apparaîtra lorsqu'aucune source de données n'a été transmise ou que la source de données est vide. whenNoDataType="NoDataSection" est réglé.
Jasper contre Pentaho
Nous allons maintenant découvrir la différence entre Jasper et Pentaho.
Voici les principales différences entre Jasper et Pentaho :
| Paramètres | Jasper | Pentaho |
|---|---|---|
| Rapports | Jasper utilise Jaspersoft Studio pour la conception des rapports. | Il utilise le logiciel Pentaho Report Designer. |
| Prise en charge ETL | Jaspersoft utilise la version Talend Open Studio à des fins ETL. | Il utilise Pentaho Data Integrator par défaut Outil ETL. |
| Tableau de bord | La fonctionnalité de tableau de bord est présente uniquement dans l'édition Enterprise de Jaspersoft. | Pentaho propose un large éventail de fonctionnalités dans ses tableaux de bord. |
| Intelligence d'affaires mobile | Jaspersoft offre une meilleure prise en charge de la BI mobile. | Pentaho doit s'appuyer sur un outil tiers pour améliorer l'expérience de BI mobile. |
| Documentation | Meilleur marketing, sites et documentation. | Le support documentaire est médiocre. |
| Meilleure fonctionnalité | Plus facile de rechercher et de trouver ce dont vous avez besoin. | Offre des fonctionnalités d'exploration de données et d'intégration iPhone. |
| Version payante | La version payante offre des fonctionnalités telles que requête ad hoc Interface utilisateur web et création de tableaux de bord. | Offre des fonctionnalités telles que l'intégration LDAP, l'authentification unique (SSO) et l'audit. |
Les équipes ont déjà investi dans Java Les équipes qui utilisent généralement Jasper choisissent généralement Jasper, tandis que celles qui ont besoin d'une intégration de données poussée et de rapports importants choisissent souvent Jasper. Pentaho.
Défis rencontrés lors de la création de JasperReports
Voici quelques défis auxquels vous serez confrontés lors de la création de rapports Jasper :
- Modifications fondamentales – lorsque les règles métier changent ou sont améliorées, il est nécessaire de modifier la logique fondamentale du rapport.
- Les rapports complexes – les sous-rapports et les tableaux croisés dynamiques en sont de bons exemples.
- Graphiques ou diagrammes visuels, par exemple graphiques, lignes XY, secteurs, barres, séries chronologiques et graphiques de type compteur.
Inconvénients de l'utilisation des rapports Jasper
Voici les inconvénients liés à l'utilisation de Jasper Reports.
- Une fois que vous commencez à modifier des parties du package et à supprimer des fonctionnalités, il est très difficile de revenir aux paramètres par défaut du package.
- Il est trop rigide, et la modification des lignes et la création de tableaux croisés dynamiques constituent une tâche ardue.
- Certaines tâches courantes, comme la spécification des sous-totaux pour un rapport groupé, sont plus faciles dans d'autres logiciels de création de rapports.
- Jasper nécessite que vous compiliez des rapports avant de les exécuter. Cela signifie que les développeurs de rapports doivent disposer de l'intégralité Java SDK installé.
- Parfois, lorsque vous modifiez le rapport, celui-ci n'affiche pas le même aperçu que celui affiché sur le Web.






















