This shows you the differences between two versions of the page.
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. | ||
+ | |||
+ | |||
+ |