Le site francophone consacré au projet Eclipse et à OSGi
 
 

 

 

(publié le 28/02/2006)

Présentation du projet BIRT

Le projet BIRT, Business Intelligence and Reporting Tools, propose un système de création de rapports pour les applications Web. Comme tous les projets développés dans le cadre de la fondation Eclipse, BIRT est open-source et libre d'utilisation. Initié par la société Actuate, ce projet est particulièrement actif et propose notamment de nombreux exemples. Les deux principaux composants de BIRT sont un outil de conception de rapports basé sur Eclipse et un moteur d'exécution installable dans un serveur d'applications J2EE.

L'utilisation de BIRT peut se résumer de la façon suivante :

chaque rapport est décrit dans un fichier (au format XML). L'éditeur associé à ce type de fichiers permet de construire graphiquement le rapport (à la façon d'un traitement de texte).

le but d'un rapport est d'afficher des données. Pour chaque rapport, l'outillage de BIRT propose une vue 'Explorateur de données' qui permet la définition d'une ou plusieurs 'sources de données' (par exemple une base de données relationnelles) et d'un ou plusieurs 'jeux de données' extraits de la source de données (par exemple les champs renvoyés par une requête SQL). Les 'jeux de données' constituent les données à afficher.

L'édition du rapport se fait en mode graphique en insérant les différents composants graphiques proposés (Texte, image, tableau, liste, graphique, ...). Les valeurs affichées par ces composants peuvent être soit statiques, soit extraites des 'jeux de données', soit calculées en utilisant des formules prédéfinies et des scripts écrits en JavaScript.

A tout moment, le concepteur du rapport peut demander son exécution directement à partir des menus de BIRT. La prévisualisation se fait au format HTML ou PDF.

La mise en exploitation se fait en déployant le rapport sur un serveur d'applications J2EE dans lequel le moteur d'exécution BIRT a été installé. Le rapport sera alors accessible par une URL dont les paramètres permettent notamment d'indiquer le format de génération (PDF ou HTML).

 

 

Installation de BIRT 2.0

Le projet BIRT propose plusieurs téléchargements (cf page de téléchargement de BIRT). Le principal découpage se fait entre la partie outil de conception (Report Designer) et la partie moteur d'exécution (Report Engine).

- Report Designer : permet d'ajouter l'outillage de BIRT à une installation d'Eclipse existante. BIRT s'appuyant sur d'autres sous-projets Eclipse (GEF et EMF) et sur divers projets open-source n'appartenant pas à la fondation Eclipse (Axis et iText), la procédure d'installation nécessite plusieurs étapes décrites sur cette page. Un des objectifs annoncés de la version 2.1 (juin 2006) est de simplifier cette procédure d'installation. Un premier aperçu de cette simplification est disponible avec la version 2.0.1 (février 2006) qui introduit un téléchargement, nommé 'Report Designer Full Eclipse Install', qui contient Eclipse SDK, BIRT et la quasi totalité des pré-requis.

Une version autonome de BIRT est aussi proposée : RCP Report Designer. Cette version de l'outillage de BIRT se présente sous la forme d'une application Eclipse RCP. Elle contient le socle d'Eclipse et tous les pré-requis de BIRT. Son installation est plus légère mais elle ne contient pas l'outillage Java d'Eclipse (la conception d'un rapport BIRT n'impose pas le développement de code Java).

- Report Engine : permet d'installer le moteur de génération de rapports dans un serveur d'applications J2EE (Tomcat, JBoss,...). A noter qu'un téléchargement nommé Chart Engine permet d'utiliser la partie génération de graphiques sans installer le reste de BIRT.

 

Création d'un rapport

BIRT ne nécessite pas la création d'un projet Eclipse d'un type particulier. Les fichiers peuvent se trouver dans un projet existant (projet Java, projet 'Simple', ...). Un type de projet nommé 'projet d'état' est tout de même proposé. La création d'un nouveau rapport se fait en indiquant le nom et l'emplacement du fichier.

 

L'assistant de création permet de sélectionner un modèle prédéfini de rapport.
(A noter que la liste des modèles est extensible)

 

Une fois créé le rapport est disponible dans la zone d'édition.
Le mode d'édition par défaut permet de manipuler graphiquement le contenu du rapport. L'éditeur offre en plus la possibilité d'éditer le masque des pages, les éventuels scripts associés au rapport et le code XML du rapport (La syntaxe des fichiers BIRT est définie dans la documentation du BIRT Report Object Model)

 

Définition des jeux de données

Chaque rapport est associé à un ou plusieurs jeux de données dont le but est de définir la structure des données manipulables dans le rapport et la façon dont BIRT doit les récupérer. Avec BIRT 2.0, les jeux de données peuvent être obtenus à partir de 4 types de sources différentes : une base de données relationnelles accessible par JDBC, un fichier XML, un fichier 'plat' (fichier texte, fichier .csv, ...) ou un script renvoyant les données (écrit en Java ou JavaScript). Techniquement la dernière solution permet d'accéder à tout type de données mais nécessite le développement de code particulier. Les autres types de sources données ne nécessite pas de code : une succession d'assistants permet d'indiquer à BIRT les informations nécessaires à l'extraction des données.

 

Extraction à partir d'une base de données

BIRT prend en charge la connexion à la base de données et l'extraction des données, pour ce faire il faut préciser d'une part les informations de connexion et d'autre part la requête SQL à utiliser.
Dans l'assistant de création d'une source de données de type JDBC il faut indiquer : le driver JDBC, la chaîne de connexion JDBC, le nom d'utilisateur et le mot de passe.

L'étape suivante consiste à créer un 'jeu de données' associé à la source de données et à indiquer la requête SQL correspondante. L'assistant de création d'un jeu de données permet la visualisation de la structure des tables et l'édition de la requête SQL.

 

Extraction à partir d'un fichier XML

La définition d'un jeu de données à partir d'un fichier XML passe par la création d'une source de données indiquant l'emplacement du fichier XML puis par un assistant qui va analyser la structure du fichier XML et permettre la sélection des éléments XML à inclure dans le jeu de données. L'assistant permet de définir pour chaque champ du jeu de données une expression XPath qui sera utilisée par BIRT pour extraire les données du fichier XML.

 

Extraction à partir d'un fichier plat

Pour définir un jeu de données extrait d'un fichier plat, il faut indiquer le fichier (.txt, .csv, ...) et les colonnes à intégrer dans le jeu de données.

 

Extraction à partir d'un script

Les données peuvent être récupérées par programmation. BIRT permet d'associer du code Java ou JavaScript aux différents évènements qui ponctuent la génération d'un rapport. En définissant un jeu de données de type script le développeur va pouvoir faire appeler par BIRT du code lors de la phase de construction du jeu de données. Le code JavaScript est à saisir dans l'onglet 'Script' de l'éditeur de rapport. Le code Java est à placer dans des classes implémentant des interfaces prédéfinies par BIRT, une propriété optionnelle du rapport permet d'indiquer la classe Java qui gère les événements.

 

Manipulation d'un jeu de données

Une fois défini le jeu de données apparaît dans la vue 'Exploration des données'.



Les propriétés du jeu de données sont éditables, il est notamment possible de rajouter des champs calculés :



La prévisualisation des données est possible directement dans l'éditeur des propriétés du jeu de données :

 

 

Conception d'un rapport

La conception d'un rapport se fait graphiquement en utilisant l'éditeur proposé par BIRT.
BIRT propose plusieurs types de composants graphiques à insérer dans un rapport, la vue 'Palette' affiche la liste des types de composants. La vue 'Structure' ('Outline' en anglais) affiche l'arborescence des composants du rapport. Cette vue est synchronisée avec l'éditeur : la sélection d'un composant dans cette vue le sélectionne dans l'éditeur et vice versa.

 

Chaque composant du rapport possède ses propres propriétés qui sont éditables dans la vue nommée 'Editeur de propriétés'.

 

Les valeurs affichées par les composants 'Texte dynamique' ainsi que certaines propriétés des composants peuvent être associées à des expressions Javascript. BIRT propose un assistant pour saisir ces formules.

 

Exemple 1 : la valeur d'un composant de type 'Texte dynamique' peut être calculée.

 

Exemple 2 : le composant table dispose de nombreuses fonctionnalités, il est notamment possible de définir des expressions pour déterminer si une ligne doit être mise en surbrillance.

 

Pendant la génération d'un rapport, BIRT déclenche des évènements sur chacun des composants. L'onglet 'Script' de l'éditeur permet au développeur d'associer du code JavaScript aux évènements. Ce code peut notamment agir sur les valeurs à afficher ou sur la mise en forme des composants.

 

Outre les composants permettant d'afficher les données sous forme textuelle (Texte, tableau, liste), BIRT intègre la possibilité d'ajouter des graphiques dans un rapport. L'assistant de création de graphiques offre de nombreuses possibilités :

  • choix entre plusieurs types de graphiques (cf ci-contre)
  • paramétrage du rendu du graphique (Polices, couleurs, style 3D ou 2D, position du texte...).
  • sélection des données à afficher. Ces données peuvent provenir directement du jeu de données ou être calculées.
  • choix du type de rendu : PNG, GIF, JPG, SVG ou BMP.

 

 

Exécution d'un rapport

Pendant la phase de développement, le rapport peut être exécuté de différentes façons :
- l'onglet 'Aperçu' de l'éditeur affiche le résultat au format HTML.
- les options suivantes du menu Fichier 'Aperçu au format PDF' et 'Aperçu au format HTML' déclenchent la génération du rapport au format sélectionné et ouvre Acrobat Reader ou un navigateur Web.

 

La mise en exploitation se fait en installant le 'BIRT Report Engine' dans un serveur d'applications J2EE (Tomcat est supporté). Le 'Report Engine' contient une application Web nommée 'BIRT Viewer', accessible par URL, et capable de générer les rapports en fonction des paramètres passés dans l'URL. Les pages suivantes présentent l'installation du BIRT Viewer et son utilisation.
Le BIRT Report Engine peut aussi être livré avec une application Java autonome dans ce cas le développeur devra utiliser les API du Report Engine pour demander la génération d'un rapport.

 


Conclusion

BIRT propose un outillage complet, intégré dans Eclipse, pour concevoir des rapports. Dans cet article ont été présentés les mécanismes de bases de BIRT. De nombreuses fonctionnalités plus avancées sont proposées: maître/détail, support des feuilles de styles, sous-rapport, insertion de liens hypertextes, internationalisation... Parmi les apports les plus importants de la version 2.0 on retiendra les notions de 'librairies' et de 'modèles de rapport' qui permettent de réutiliser des portions de rapports et favorisent la séparation des rôles entre les différents participants à la création d'un rapport.

Le site officiel fournit des exemples pour une grande partie des fonctionnalités de BIRT :
- Liste des exemples.
- Tutorial BIRT.
- Article sur l'utilisation des notions de librairies et de modèles.
- Les news d'EclipseTotale concernant BIRT.

 

 

 

 

 


 

 

(c) EclipseTotale - contact(arobase)eclipsetotale.com