User Tools

Site Tools


wiki:epims4_0m2:developer:epwebreport

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:epims4_0m2:developer:epwebreport [2008/11/24 16:54]
132.168.73.9
wiki:epims4_0m2:developer:epwebreport [2008/11/25 10:30] (current)
132.168.73.9
Line 1: Line 1:
 ====== Implémentation des rapports ====== ====== Implémentation des rapports ======
 +**[A partir de la RC1]** \\ 
 Les rapports sont générés à l'aide de la librairie Jasper. Les rapports sont générés à l'aide de la librairie Jasper.
 +
  
 ===== Architecture ===== ===== Architecture =====
Line 8: Line 10:
 **Fig1 : Diagramme de classes du "​moteur"​ de génération de rapport d'​eP-Web** **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 : La séquence de la génération d'un rapport est le suivant :
   * L'​utilisateur,​ à partir d'une page JSP, lance l'​export.   * L'​utilisateur,​ à partir d'une page JSP, lance l'​export.
Line 18: Line 19:
     * //format// : le format dans lequel devra être construit le rapport : Excel, PDF, HTML (voir les attributs static de //​GenericReportBean//​)     * //format// : le format dans lequel devra être construit le rapport : Excel, PDF, HTML (voir les attributs static de //​GenericReportBean//​)
     * //​jasperFilePath//​ : le lien complet (dossier et nom du fichier) vers le fichier .jasper de description du rapport.     * //​jasperFilePath//​ : le lien complet (dossier et nom du fichier) vers le fichier .jasper de description du rapport.
-    * //​exporterParameters//​ :  +    * //​exporterParameters//​ : une map contenant des paramètres de l'​exporter (ex : Faut-il mettre une feuille par page pour un document excel, noms de ces feuilles) 
- +  * La méthode export() de la //​JasperReportFactory//​ va remplir le rapport (en se connectant à la base de donnée) puis vas le faire mettre au format voulu en le passant à la méthode adéquate. 
-{{:​wiki:​epims4_0m2:​developer:​diagramme-seq-report.png|}}+  * Une fois le rapport formaté il va être renvoyé sous la forme d'un tableau de byte (//​byte[]//​) qui va être attrapé par le ReportBean et encapsulé dans une réponse HTTP. Le ReportBean envoie cette réponse ainsi qu'un message JSF de succès de l'​opération. 
 +{{:​wiki:​epims4_0m2:​developer:​diagramme-seq-report.png|test}}
  
 **Fig2 : Diagramme de séquence de la génération de rapport dans eP-Web** **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 [[http://​jasperforge.org/​plugins/​project/​project_home.php?​group_id=83|iReport]] par exemple), Pour l'​intégrer il faut suivre les étapes suivantes :
 +  - 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).
 +  - 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.
 +
 +
 +
wiki/epims4_0m2/developer/epwebreport.1227542063.txt.gz · Last modified: 2008/11/24 16:54 by 132.168.73.9