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.

  • (I.e. Définition principale : JasperReports est un Java Bibliothèque de classes permettant d'afficher des données à l'écran, à l'imprimante, aux formats PDF, HTML, XLS, RTF, CSV, XML, ODT et TXT.
  • (I.e. Étapes du cycle de vie : Quatre étapes se déroulent successivement : la conception du JRXML, sa compilation en un fichier .jasper, son remplissage avec des données et l’exportation du résultat.
  • Environnement de conception : Jaspersoft Studio Community Edition fournit le concepteur visuel, et la version 6.21.3 est la version communautaire actuelle.
  • 🧩 Structure de bande : Les bandes de titre, d'en-tête de page, d'en-tête de colonne, de détail, de pied de colonne, de pied de page et de résumé contrôlent l'emplacement d'impression de chaque élément.
  • ???? Flexibilité des données : Un seul rapport peut combiner JavaCollections Beans, ensembles de résultats SQL, fichiers XML et adaptateurs de données personnalisés.
  • Comparaison des plates-formes : Jaspersoft est leader en matière de documentation et de veille stratégique mobile, tandis que Pentaho est leader en matière de tableaux de bord et d'exploration de données.
  • ⚠️ Limitation connue : Les rapports doivent être compilés avant leur exécution ; par conséquent, chaque développeur de rapports a besoin d'un environnement complet. Java SDK installé.

Tutoriel JasperReports

À 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 :

Cycle de vie de JasperReports

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.

Installer Jasper Reports - Configuration de l'environnement

Étape 2) Sélectionnez Jaspersoft Studio CE
Parmi les éditions communautaires, sélectionnez Jaspersoft Studio CE.

Installer Jasper Reports - Configuration de l'environnement

É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.

Installer Jasper Reports - Configuration de l'environnement

Étape 4) Cliquez sur le bouton Accepter
L'écran suivant s'affichera. Sélectionnez le bouton « J'accepte ».

Installer Jasper Reports - Configuration de l'environnement

Étape 5) Choisissez l'emplacement
Sélectionnez votre emplacement d'installation et cliquez sur le bouton Suivant.

Installer Jasper Reports - Configuration de l'environnement

Étape 6) Les progrès sont en cours maintenant
Vous verrez la progression sur l’écran suivant.

Installer Jasper Reports - Configuration de l'environnement

Étape 7) Cliquez sur le bouton terminer
Dans l'écran suivant, cliquez sur le bouton Terminer.

Installer Jasper Reports - Configuration de l'environnement

Étape 8) Les progrès sont terminés
L'écran suivant apparaîtra dans votre fenêtre.

Installer Jasper Reports - Configuration de l'environnement

Étape 9) Commencer
Ensuite, cliquez sur l'option « Commencer ».

Installer Jasper Reports - Configuration de l'environnement

Étape 10) Commencez à travailler avec le studio Jasper Reports
L'écran suivant s'affichera et vous pourrez commencer à travailler avec Jasper Reports Studio.

Installer Jasper Reports - Configuration de l'environnement

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.

  1. Allez dans l'option Fichier.
  2. Sélectionnez le sous-menu Nouveau.
  3. Cliquez sur l'option Rapport Jasper.

Création d'un exemple de modèle de rapport

Étape 2) Sélection du modèle souhaité.

  1. Sélectionnez votre modèle, par exemple cerise.
  2. Cliquez sur le bouton "Suivant".

Création d'un exemple de modèle de rapport

Étape 3) Sélection d'un dossier parent.

  1. Sélectionnez le dossier Mes rapports.
  2. Saisissez le nom du fichier, par exemple « Cherry Report ».
  3. Cliquez sur le bouton "Suivant".

Création d'un exemple de modèle de rapport

Étape 4) Dans la fenêtre Source de données, cliquez sur le bouton « Nouveau » pour créer un nouvel adaptateur de données.

Création d'un exemple de modèle de rapport

Étape 5) Sélection d'un adaptateur de données.

  1. Sélectionnez l'adaptateur de données dans la liste déroulante. Par exemple, « Collection de JavaHaricots."
  2. Cliquez sur le bouton "Suivant".

Création d'un exemple de modèle de rapport

Étape 6) Saisie des détails de l'adaptateur de données et sélection de la classe d'usine.

  1. Entrez un nom pour votre adaptateur.
  2. Sélectionnez la classe d'usine en cliquant sur le bouton « … ».

Création d'un exemple de modèle de rapport

Étape 7) Saisie du préfixe ou du modèle.

  1. Entrez le préfixe ou le modèle du nom.
  2. Cliquez sur les éléments correspondants.
  3. Cliquez sur le bouton «OK».

Création d'un exemple de modèle de rapport

Étape 8) Définition de la classe de fabrique et ajout du chemin d'accès aux fichiers jar.

  1. Entrez le nom d'une méthode statique dans la classe d'usine. Dans cet exemple de rapports Jasper, il s'agit de createBeanCollection.
  2. 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 ».
  3. Ajoutez un chemin à vos fichiers jar.
  4. Cliquez sur le bouton « Terminer ».

Création d'un exemple de modèle de rapport

Étape 9) Cliquez sur le bouton "Suivant".

Création d'un exemple de modèle de rapport

Étape 10) Félicitations ! Vous avez correctement saisi toutes les informations nécessaires à la création du rapport. Cliquez sur le bouton « Terminer ».

Création d'un exemple de modèle de rapport

Le rapport sera généré comme indiqué sur la capture d'écran ci-dessous.

Création d'un exemple de modèle de rapport

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.

FAQ

Le fichier .jrxml est le modèle XML lisible par l'humain que les concepteurs modifient. Le fichier .jasper est le fichier binaire compilé qui en est issu ; seul ce dernier est exécuté lors de l'exécution.

La bibliothèque JasperReports et Jaspersoft Studio Community Edition sont distribuées sous licence libre et peuvent être intégrées à des produits commerciaux. Les tableaux de bord, la planification et les fonctionnalités de sécurité nécessitent la version payante.

Oui. Créez un adaptateur de données JDBC dans Jaspersoft Studio, fournissez le fichier JAR du pilote et la chaîne de connexion, puis écrivez la requête dans le rapport. Les paramètres sont transmis avec la syntaxe dollar-accolade.

Oui. Ajoutez la dépendance JasperReports, placez les fichiers .jasper compilés dans le classpath et appelez JasperFillManager depuis une classe de service. Les octets exportés peuvent être directement transmis à une réponse HTTP.

Les assistants IA peuvent générer rapidement les squelettes JRXML et la syntaxe des expressions. Ouvrez toujours le fichier généré dans Jaspersoft Studio, car les hauteurs de bande et les coordonnées des éléments nécessitent souvent une correction manuelle.

Il gère les documents opérationnels précis au pixel près que les tableaux de bord d'IA ne produisent pas, tels que les factures et les relevés. Les résultats du modèle sont enregistrés dans une base de données, et Jasper les affiche pour diffusion.

Résumez cet article avec :