Table of Contents

Implémentation des rapports

[A partir de la RC1]
Les rapports sont générés à l'aide de la librairie Jasper.

Architecture

Les rapports sont gérés par des classes dérivés de GenericReportBean (ou dans le cas de rapport “simple”, sans paramètres, directement par une instance de GenericReportBean). Ils sont ensuite construit et mis en forme par la classe JasperReportFactory qui va, pour cela faire appel aux fonctionnalités de la librairie Jasper.

Fig1 : Diagramme de classes du “moteur” de génération de rapport d'eP-Web

Fonctionnement

La séquence de la génération d'un rapport est le suivant :

test

Fig2 : Diagramme de séquence de la génération de rapport dans eP-Web

Intégration d'un nouveau rapport

Une fois un descripteur de rapport créé (avec iReport par exemple), Pour l'intégrer il faut suivre les étapes suivantes :

  1. Recenser les paramètres nécessaires au rapport. 2 possibilités :
    • Si il n'a besoin d'aucun paramètre pas de nouvelle classe à créer. Il utilisera directement GenericReportBean.
    • Si il a besoin de paramètre. Il va falloir alors :
      • créer un ReportBean héritant de GenericReportbean (son nom sera si possible de la forme XXXReportBean).
      • dans le constructeur positionner l'attribut jasperFileName.
      • lui donner les attributs et les Getter & Setter adéquats.
      • Surcharger la méthode initExport() de GenericReportBean pour pouvoir renseigner les paramètres qu'il faut dans reportParameters et si besoin dans exporterParameters. Penser aussi a donner le format voulu et le nom du fichier final (reportFileName).
  2. Déclarer la classe du rapport dans le fichier faces-managed-beans.xml
    • Si c'est un GenericReportBean :
      • Dans <managed-bean-name> donner un nom en rapport avec ce sur quoi va porter le rapport
      • Dans <managed-bean-class> donner le path de GenericReportBean
      • Ajouter les <managed-property> suivantes :
        • jasperFileName : le nom du fichier .jasper de description du rapport
        • choosedFormat : le format dans lequel sera le rapport (ATTENTION a bien utiliser les attributs static de GenericReportBean)
        • reportFileName : le nom du fichier de sortie du rapport. Si rien n'est spécifié ce sera null.
    • Si c'est une nouvelle classe :
      • Dans <managed-bean-name> donner le nom de la classe
      • Dans <managed-bean-class> donner le path de la classe.