Utilisation de BIRT

Silvera David

Ce tutoriel a pour but de vous initier à BIRT. Il vous expliquera comment et pourquoi utiliser cet outil de reporting.
Bonne lecture!
Commentez

- Titre : Utilisation de BIRT

- Auteur : Silvera David

- Parution : 15 août 2011

- Mise à jour : 1 mai 2020

- Licence : Copyright ® 2011 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- I-A. Pourquoi BIRT

- I-B. Installation

- I-C. Fonctionnalités

- I-D. Génération et exportation de rapport Birt

- II. Data Source

- III. Data Set

- IV. Data Cube

- V. Report Parameters

- VI. Script

- VII. La palette de BIRT

- VIII. Les propriétés

- IX. Master Page

- X. XML Source

- XI. Conclusion

- XII. Remerciement

I - Introduction

Le reporting permet de synthétiser des données sous forme de rapport. Ainsi, il est plus agréable, plus pratique, plus lisible, plus présentable d'exploiter nos données.
Des exemples simples de rapports sont nos bulletins de paye, nos factures, un calendrier de l'année, le bilan de l'année,\x{0085}
Aujourd'hui, il est facile de générer ce type de rapport à l'aide d'outil comme Jasper, Pentaho, Business Object, crystal reports, cognos,\x{0085}, mais aussi BIRT, celui que j'ai choisi de vous présenter.

I-A - Pourquoi BIRT

Voici une liste de tableaux comparatifs entre BIRT 2.6.0, Jaspersoft 3.7 Community et Pentaho 3.5.

BIRT 2.6.0

Jaspersoft 3.7 Community

Pentaho 3.5

Site Internet

www.birt-exchange.com www.eclipse.org/birt

www.jasperforge.com

reporting.pentaho.com

License

Eclipse Public License

GNU Lesser General Public License

GNU Lesser General Public License

REPORT DESIGNER

BIRT Report Designer 2.6.0

Jasper iReport 3.7

Pentaho Report Designer 3.5.0 stable

Plateforme du Designer

Windows, Linux, Mac OS X

Windows, Linux, Mac OS X

Windows, Linux, Mac OS X

Plug-in pour Eclipse

OUI

NON

NON

Plug-in pour NetBeans

NON

OUI

NON

Design Paradigm

Web Page Design paradigm: frames, tables, lists

positionnement des pixels

positionnement des pixels

Format des rapports

XML (les fichiers .RPTDESIGN sont entièrement en XML) XML (les fichiers .RPTDESIGN sont entièrement en XML)

Les fichiers .JRXML sont compilés en fichiers .JASPER, qui sont en Java Byte Code

XML (Les fichiers .PRPT sont des ZIP contenant un fichier XML et d'autres ressources)

Compilation des rapports

Non requis

Requis

Requis

Composant du Designer:

BIRT 2.6.0

Jaspersoft 3.7 Community

Pentaho 3.5

Sous rapport

OUI

OUI

OUI

- Édition de rapport
- Palette
- Explorateur
- Édition des propriétés
- Aperçu du rapport
- Structure du rapport
- Expression
- Générateur de rapport
- Graphique
- Générateur de Script
- Éditeur

OUI

OUI

OUI

Tableaux

OUI

NON

NON

Tableaux croisés

OUI

OUI

\x{0093}Expérimentale\x{0094} sur Pentaho 3.5

Tri horizontal panoramique

OUI

Toujours défiler vers le bas, même si c'est un tableau croisé à cellules côte à côte

NON

Plug-in pour NetBeans

NON

OUI

NON

Nouvelle/ mise en page multicolonne

NON

OUI

NON

Lien vers un autre rapport

OUI

OUI

OUI

Graphe actionnable

OUI lien, au passage de la souris

Lien partiel

NON

Cascading Style Sheets (CSS)

OUI

NON

NON

Mise en forme conditionnelle

OUI

Partielle

OUI

Source des données :

BIRT 2.6.0

Jaspersoft 3.7 Community

Pentaho 3.5

Plusieurs sources et requêtes par rapport

OUI + possibilité de jointure

Seulement avec des sous-requêtes.
Une seule source de données par sous-requête

Seulement avec des sous-requêtes ou des graphes.
Une seule source de données par sous-requête

Possibilité de joindre plusieurs sources de données dans le designer

OUI

NON

NON

Les rapports peuvent retrier, filtrer ou regrouper les données retournées par une requête.

OUI

Partial \x{0096} Jasper peut manipuler les données avant de construire un tableau croisé

NON

Type de source de données

- Database JDBC
- XML File
- Web Services
- CSV, SSV, PSV, TSV
- data source customisée
- OLAP MDX
- POJO,EJB, Hibernate, XML Stream

- Database JDBC
- XML File
- CSV File
- Microsoft Excel
- JavaBeans
- Hibernate HSQL
- Spring Hibernate EJBQL
- XMLA Server
- Mondrian OLAP
- fichier texte
- NetBeans JDBC
- POJOs
- Custom
- Fichier XML

- Database JDBC
- XML files
- Table
- OLAP MDX
- Pentaho Metadata
- Pentaho Data Integration
- OLAP MDX
- POJO, EJB, Hibernate

Requête

OUI

OUI

OUI

Designer de requête graphique

Seulement un prototype

OUI (SQL Leonardo)

OUI (SQL-Leonardo)

Script

- JavaScript
- Java Event Handlers

- JavaScript
- Groovy
- Java

- JavaScript
- Bean Script Framework (BSF)
- Bean-Script Host (BSH)
- Single Value Query

Format de sortie :

BIRT 2.6.0

Jaspersoft 3.7 Community

Pentaho 3.5

HTML paginé

OUI

OUI

OUI

HTML non paginé

OUI

NON

NON

PDF

OUI

OUI

OUI

Excel (XLS)

OUI

OUI

OUI

XML

OUI

OUI

OUI

Texte brut

OUI

OUI

OUI

RTF

OUI

OUI

OUI

PowerPoint (PPT)

OUI

NON

NON

CSV

OUI

OUI

OUI

Postscript

OUI

OUI

OUI

OpenOffice (document et feuille de calcul)

NON

OUI

NON

Microsoft Office 2007 (DOCX, XLSX)

NON

OUI

NON

Flash (SWF)

NON

OUI

NON

Format customisé

OUI

OUI

OUI

Forme géométrique et ligne

OUI

OUI

OUI

Code-barre

OUI

OUI

OUI

Graphes

OUI

OUI

OUI

Assistant Graphe

OUI

2 étapes assistées, Le reste est une boite de dialogue

NON

Interaction avec les graphes

OUI (lien, passage de la souris\x{0085})

OUI (seulement les liens)

NON

Thèmes des graphes

OUI

OUI

NON

Contrôle précis des graphes

OUI

NON

NON

Type de graphe :
- 2D
- 3D
- Camembert
- Camembert multiple Bar
- Stacked Bar
- Bar XY Line
- Line XY Area
- Area XY Stacked
- Area Bar Line
- Bubble Scatter Plot MultiAxis

OUI

OUI

OUI

Graphe en anneau

NON

NON

OUI

Graphe en tube

OUI

NON

NON

Graphe en cône

OUI

NON

NON

Pyramide

OUI

NON

NON

Séries de temps

OUI

OUI

NON

Mesure / Gauge

OUI

OUI

NON

Chute d'eau

NON

NON

OUI

Radar

OUI

NON

OUI

Thermomètre

NON

OUI

NON

Gantt

OUI

OUI

NON

Échelle

NON

NON

OUI

Paramétrer le rapport

BIRT 2.6.0

Jaspersoft 3.7 Community

Pentaho 3.5

Paramètres statiques
Sélection des valeurs des paramètres
Sélection des valeurs des paramètres dans une liste

OUI

OUI

OUI

Paramètres dynamiques
Sélection de la valeur du paramètre selon une liste tirée de la base de données

OUI

OUI

OUI

Paramètres en cascade

OUI

OUI

OUI

Date du calendrier pour les paramètres de type date

OUI

OUI

OUI

Spécification de la valeur par défaut

OUI

OUI

OUI

Liste à case à cocher

OUI

OUI

OUI

Liste à radio bouton

OUI

OUI

OUI

Agrégation / Calcul

BIRT 2.6.0

Jaspersoft 3.7 Community

Pentaho 3.5

agrégations communes

- Moyenne
- Compte
- Compte distinct
- Premier
- Les N premiers
- Les N premiers pour cent
- Les N deniers
- Les N deniers pour cent
- Dernier
- Maximum
- Mediane
- Minimum
- Modulo
- Pourcentage
- Pourcentage de rang
- Somme des pourcentages
- Quartile
- Rang
- Compte courant
- Cumul
- Écart type
- Somme
- Variance
- Moyenne pondérée

- Moyenne
- Compte
- Compte distinct
- Somme
- Premier
- Minimum
- Maximum
- Écart type
- Variance
- Système

- Moyenne
- Compte
- Compte par page
- Compte par groupe
- Somme
- Minimum
- Maximum
- Somme
- Pourcentage de somme
- Calcul
- Somme par page
- Somme
- Compte (lors de l'exécution)
- Compte par groupe (lors de l'exécution)
- Compte distinct (lors de l'exécution)
- Moyenne (lors de l'exécution)
- Minimum (lors de l'exécution)
- Maximum (lors de l'exécution)
- Pourcentage du total (lors de l'exécution)

Définitions de fonctions / d'expressions

OUI
Java, JavaScript

OUI
Java, JavaScript, ou Groovy

OUI
OpenFormula (Excel-like), Java

Définitions d'agrégations

OUI

OUI

OUI

Chaque élément peut avoir son propre code, événement, fonction\x{0085}

OUI

Seulement le rapport lui-même peut avoir ce type de fonctionnalité

Pas dans le designer

I-B - Installation

Pour utiliser BIRT, il faut installer le logiciel Eclipse (version Helios Release par exemple) avec l'extension de BIRT (lien ici).
De plus, il est possible d'ajouter une extension afin de pouvoir faire pivoter du texte (lien ici).

I-C - Fonctionnalités

BIRT (Business Intelligence and Reporting Tools) est un outil de reporting Open Source reposant sur Eclipse.
Cet outil est graphique c'est-à-dire que nous avons une palette permettant de sélectionner l'élément que nous voulons placer sur notre rapport (par exemple, un label, une image, un tableau).

Ensuite, nous avons la possibilité de connecter le rapport avec une base de données afin de pouvoir afficher le résultat d'une requête SQL comme nous le souhaitons sur notre feuille de travail. Pour cela, nous devons ajouter une « Data Sources » qui permet de nous connecter à une base de données.

Puis, nous pouvons ajouter une « Data Set » qui, elle, contient la requête SQL. Cette dernière peut générer des requêtes statiques, mais aussi dynamiques en ajoutant des paramètres modifiables lors de l'exécution du rapport. De plus, nous pouvons modifier le nom de certaines colonnes du résultat de la requête, en créant des alias ce qui permet de reconnaitre les champs plus facilement lorsque nous voulons les placer sur notre rapport (ceci est indispensable lorsque nous faisons une jointure avec deux tables dont deux champs ont le même intitulé comme 'libelle' ou 'id').

Le « Data Cube » permet de créer un tableau croisé (« cross table »). Ceci est pratique lorsque nous voulons faire des statistiques sur une durée par exemple. Cette fonctionnalité possède beaucoup d'avantages, notamment l'affichage de données par colonne et le calcul du total automatique pour les statistiques.

Comme dit précédemment, nous pouvons générer des requêtes dynamiques. Pour cela nous devons créer des variables qui serviront de paramètres au rapport. Ainsi, nous devons utiliser l'option « Report parameters » qui permet de créer ces paramètres et de préciser leurs types (entier, chaine de caractère, booléen\x{0085}) et leurs valeurs par défaut.

Il y a la possibilité d'insérer des graphiques. Sous BIRT, les graphiques sont entièrement personnalisables et dépendent d'un data set ou d'un data cube. Nous pouvons l'afficher en 2D, 2D avec profondeur ou 3D.

Les éléments de la page peuvent être personnalisés en modifiant les propriétés. Parmi ces dernières, il y a la possibilité de changer l'aspect d'un élément (couleur, taille, police, fond), mais aussi de modifier le fonctionnement (ajouter une condition d'affichage, des liens). À l'aide de l'onglet « Binding », nous assignons une requête (« Data Set ») à un élément afin de pouvoir utiliser l'un de ses champs pour l'affichage.

BIRT permet aussi d'ajouter un haut de page et un bas de page statiques ou dynamiques modifiables avec l'onglet « Master Page ». Ici, nous pouvons insérer des textes automatiques situés dans la palette comme le numéro de page ou la date et l'heure.

Nous pouvons programmer des fonctions utilisables dans notre rapport en les stockant dans l'onglet « Script ». Ces scripts peuvent être exécutés au démarrage du rapport ou à la fermeture du rapport, pour un élément précis ou pour le rapport en entier. De plus, nous pouvons avoir accès au code source XML.

I-D - Génération et exportation de rapport Birt

Tout d'abord, nous pouvons générer des rapports en temps réel à l'aide de l'onglet « Preview ».

De plus, nous pouvons exporter le rapport sous différents formats. Ceci permet l'export sous format doc (document Word), HTML (page Internet), PDF, PPT (document PowerPoint), XLS (document Excel) ou Web viewer (application Web). Chacun d'entre eux ayant une interprétation différente, il faut faire attention à pouvoir internationaliser nos rapports.

II - Data Source

La Data Source permet de se connecter à une base de données. Sans cela, le rapport et ses données resteront statiques.

Il est possible de charger n'importe quel driver SQL (mysql JDBS\x{0085}). Pour se connecter à une base de données, il suffit de donner l'URL vers celle-ci via le driver. Dans l'exemple ci-dessous, l'URL est notée comme jdbc:mysql://localhost :3306/test où jdbc:mysql évoque le type de connexion à la base de données (ici, une connexion java avec mysql), localhost représente l'adresse (ici l'adresse locale), 3306 le port et test indique le nom de la base de données. Ensuite il suffit de donner le nom d'utilisateur et le mot de passe. Il est possible avant de valider de tester la connexion via le bouton « Test Connection\x{0085} ».

Il est possible de se connecter à plusieurs Data Source.

III - Data Set

Un Data Set contient une requête SQL. Cette requête peut être dynamique (avec paramètre) ou statique.

Lorsque nous éditons notre requête via la console du Data Set, nous avons accès à toutes les tables et champs des Data Source dans la partie Query > Available Items. Ceci permet de faciliter l'écriture de nos requêtes.

Dans l'onglet Output Column, nous pouvons voir l'ensemble des colonnes que la requête renvoie et ainsi, nous pouvons modifier leurs noms en leur donnant un alias.

L'onglet « Computed column » permet d'ajouter des colonnes calculables via d'autres colonnes.

Si nous voulons générer des requêtes dynamiques dépendant de variables passées en paramètre au rapport, il suffit d'ajouter nos paramètres existant dans la partie « Parameters ». Ainsi, lors de l'écriture de la requête, si nous voulons en utiliser un, il suffit de placer un point d'interrogation à sa place et le Data Set ira le chercher automatiquement. Dans le cas où il y a plusieurs paramètres, le Data Set prend les entrées dans l'ordre. Par exemple s’il y a deux points d'interrogation, le 1er correspond au 1er paramètre et le 2e au 2e paramètre.

La console contient un onglet « Filters ». Celui-ci donne l'occasion de filtrer nos champs. Par exemple, si nous récupérons une date, nous pouvons l'encadrer. Ceci revient à faire une condition dans le « where » de la requête.

La partie « Property Binding » permet d'écrire notre requête en utilisant les fonctionnalités du JavaScript.

Il est possible de voir un aperçu du résultat avec l'onglet « Preview result ».

IV - Data Cube

Un Data Cube permet de calculer des statistiques en fonction des champs retournés par un Data Set. Celui-ci peut être affiché seulement avec un tableau croisé (CrossTab).

Dans la console du Data Cube, nous pouvons sélectionner notre data set dans l'onglet « Dataset ».

Ensuite, lorsque nous allons dans « Group and Summaries », nous devons créer des groupes de données qui représenteront le haut et la colonne de gauche du tableau croisé. Par exemple, si nous voulons afficher une date dans la partie supérieure du tableau, alors nous pouvons créer un groupe « date » contenant, un champ pour l'année, un autre pour le mois et un autre pour le jour. Ensuite, nous devons afficher une opération au centre du tableau. C'est la partie « Summary ». Celle-ci se réfère à un champ du Data Set et effectue une opération en fonction des groupes créés et affichés dans le tableau croisé.

La partie « Link Group » affiche notre Data Cube sous forme de modélisation.

V - Report Parameters

Le rapport pouvant être dynamique, il est donc possible de lui fournir des paramètres.

Pour créer un paramètre, il faut lui donner un nom, un type (chaine de caractères, entier, booléen, case à cocher\x{0085}) et lui dire s'il est obligatoire ou non.

Selon le type du paramètre, nous pouvons lui sélectionner des valeurs par défaut ou même des valeurs. En effet, si notre paramètre est une liste nous pouvons générer cette liste via un Data Set ou l'écrire manuellement.

Lors de l'exécution du rapport, une fenêtre s'affiche et demande d'entrer les paramètres. Dans le cas où le paramètre n'est pas obligatoire, alors celui-ci sera affiché sous forme de deux boutons radio : le 1er avec la valeur que vous lui passez, le 2e avec la valeur « nulle ».

VI - Script

Les scripts servent à appliquer des fonctions sur des éléments du rapport. Ils sont programmés en JavaScript. Il est possible d'exécuter des scripts à différents moments de l'exécution (avant l'ouverture, avant l'exécution, après, pendant\x{0085}).

Lorsque nous voulons déclarer des fonctions utilisables dans le rapport entier, il est judicieux de les placer lors de l'initialisation de la page (clic sur la page, puis sur script, et sélection sur « initialize »).

Chaque élément peut se servir du script pour différentes raisons. Par exemple, un Data Set peut modifier sa requête en affectant une chaine de caractères contenant la nouvelle requête à la variable queryText. L'avantage de ceci est d'utiliser directement des paramètres du rapport via la syntaxe params['NomDuParametre'].value. De plus, nous pouvons utiliser les fonctionnalités du JavaScript afin par exemple d'ajouter à la requête des conditions si certains paramètres sont renseignés, d'alléger l'écriture de la requête si certains endroits se répètent\x{0085}

Les fonctions déclarées dans les scripts peuvent être utilisées à chaque fois que le symbole « fx » apparait.

VII - La palette de BIRT

Les deux premières lignes représentent un mode de sélection (par groupe d'éléments ou par élément individuel).

Les quatre suivants servent à afficher du texte : _ Le label affiche du texte statique. _ Le Texte (Text) :

_ Le texte dynamique (dynamic Text) :

_ La donnée (Data)

Cet élément est semblable à une variable utilisable qu'une seule fois. Elle est en général placée dans un tableau et représente un élément d'un data set ou d'un data cube. Ainsi, à chaque nouvelle ligne du résultat du Data Set, ce texte sera mis à jour selon la nouvelle valeur. Il est ainsi possible de modifier l'un des champs pour personnaliser son affichage via le bouton « fx ».

Ensuite, nous avons . Il permet tout simplement d'insérer une image. Celle-ci peut être fixe (une image quelconque uploadée) ou dynamique (une image récupérée via un data set ou data cube).

Les cinq derniers représentent des containers. Ce sont eux qui vont permettre d'afficher le résultat d'une requête. Ainsi, nous avons :
_ une grille : cela permet de placer n'importe quels éléments dans une partie du document. Par exemple, si nous voulons placer deux éléments l'un à côté de l'autre, il suffit de créer une grille à deux colonnes ;
_ une liste : elle affiche les données d'une requête sous forme de groupe de listes. Ainsi, nous pouvons agrandir ou réduire la liste :

_ un tableau : Cela permet d'afficher le résultat de la requête telle quelle. Il est possible de créer des groupes sur des champs et de modifier l'ordre d'affichage. Un tableau est toujours attaché à un data set ;
_ un graphique (Chart) : les graphiques sont entièrement personnalisables sous BIRT. Ils peuvent être sous n'importe quelle forme (camembert, graphe, diagramme\x{0085}). De plus, nous pouvons choisir de l'afficher en 2D, 2D profondeur ou 3D. Lors de l'ajout de cet élément, une fenêtre s'ouvre. Trois onglets séparent cette dernière. Le premier sert à choisir le type du graphique, sa dimension et son format (PNG, JPG, SVG\x{0085}). Le deuxième permet de sélectionner les données soit d'un data set, soit d'un data cube. Enfin, le troisième permet de personnaliser le graphique. Nous pouvons modifier les couleurs, les libellés, la visibilité, l'échelle, la légende\x{0085}
_ un tableau croisé (Cross Tab) : il affiche les données d'un data cube. Il est souvent utilisé pour afficher des statistiques selon deux champs d'un data cube.
Il est possible de placer des tableaux dans des tableaux (qu'ils soient imbriqués ou non).

Enfin, il est possible d'ajouter une extension et dans ce cas il peut y avoir ses éléments :

Le premier permet de remplacer des chiffres par des ronds. Si le chiffre est 2 alors il y aura 2 ronds.
Le deuxième permet tout simplement de faire pivoter le texte.

Pour finir, il reste les qui sont des éléments calculables à placer dans un tableau comme un total ou une moyenne.

VIII - Les propriétés

Dans l'éditeur de propriétés, nous pouvons remarquer que nous avons des onglets horizontaux et verticaux. Chaque élément a son propre éditeur de propriétés. Dans l'exemple ci-dessus, il s'agit de l'éditeur d'un tableau.

Dans les onglets horizontaux, nous trouvons : _ les propriétés générales (properties).
* Dans la partie générale, nous pouvons modifier le nom de l'élément, sa taille (width, height), sa position (verticale et horizontale), son style (feuille de style personnalisable), et le style du texte figurant dans l'élément (sa couleur, sa police, sa taille\x{0085}).

* Ensuite, nous avons la partie border qui permet de définir les contours des cases du tableau :

Sur l'image précédente, nous pouvons observer que nous pouvons modifier les bordures soit en cliquant sur les traits du carré de droite, soit en sélectionnant les boutons en bas à gauche.

* Nous pouvons définir des marges afin d'aérer notre rapport.

* La partie page break permet de définir le moment où nous voulons que notre rapport change de page automatiquement :

Ainsi, nous pouvons sauter de page avant, pendant ou après l'affichage de l'élément.

* Il est possible de masquer des éléments sous certaines conditions lorsque le rapport est affiché dans un format spécifique. Ceci est assez pratique si vous voulez masquer l'affichage d'un paramètre non obligatoire qui n'a pas été renseigné :

ou masquer pour un format particulier non supporté par le rapport :

* Il y a encore plusieurs propriétés pouvant être modifiées, mais nous allons les passer et arriver directement à la dernière qui est nommée 'Advanced'. Celle-ci permet de modifier l'ensemble du style de l'élément. C'est un tableau de style modifiable à la volée :

_ Après les propriétés générales, nous trouvons les Binding :

Les bindings représentent des données ainsi que des éléments calculables (agrégations) pouvant être affichés dans l'élément courant. Un élément gérant les bindings ne peut sélectionner qu'un seul Data Set ou un seul élément (données d'un élément).

_ Il est possible de faire des groupements de données. Ceci est pratique lorsque nous voulons grouper des éléments d'un tableau :

_ Le mapping consiste à remplacer une donnée lors d'une certaine condition par une autre donnée. Ceci est pratique lorsque nous voulons remplacer toutes les données égales à 0 par une chaine de caractères comme « donnée indisponible » par exemple.

_ Le highlight consiste à donner un style particulier à un champ sous certaines conditions. Ceci est pratique dans la mesure ou nous pouvons personnaliser le style selon la donnée. Par exemple, nous voulons griser le fond d'une ligne sur deux d'un tableau :

_ La partie sorting permet de trier un ensemble de lignes d'un composant listant des données :

_ Les filtres permettent de créer des jointures entre les éléments de deux composants ou de filtrer les données de l'élément selon certaines conditions :

IX - Master Page

Le master page permet de définir le haut de page et le bas de page du rapport. Il est possible d'y insérer toutes formes de donnée. De plus, nous avons accès à des données spécifiques à cette partie comme le numéro de page, la date d'impression, \x{0085} Ce sont des textes automatiques :

Le master page possède quelques propriétés déjà vues précédemment, mais elle possède aussi la propriété suivante qui consiste à pouvoir afficher le header avant ou après le footer :

X - XML Source

Le rapport BIRT peut être converti en fichier XML. Ainsi, nous pouvons modifier directement le rapport via le XML.

Les parties importantes du fichier XML sont :
_ la définition du rapport ainsi que sa version :

<report xmlns=http://www.eclipse.org/birt/2005/design version="3.2.22" id="1">

_ la définition des méthodes dans le script définit entre les balises :

<method name="initialize"><![CDATA[
code
]]\></method>

_ les paramètres du rapport entre les balises « parameters » avec la syntaxe et les propriétés suivantes :

<parameters>
<scalar-parameter name="nom_du_parametre" id="2233">
<property name="valueType">static</property>
<property name="isRequired">true</property>
<property name="dataType">string</property>
<property name="distinct">true</property>
<simple-property-list name="defaultValue">
<value type="constant">valeur_par_defaut</value>
</simple-property-list>
<property name="paramType">simple</property>
<property name="concealValue">false</property>
<property name="controlType">text-box</property>
<property name="autoSuggestThreshold">1</property>
<structure name="format">
<property name="category">Unformatted</property>
</structure>
</scalar-parameter>
</parameters>

_ la définition des Data Source comme suit :

<data-sources>
<oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="Data Source" id="7">
<list-property name="privateDriverProperties">
<ex-property>
<name>contentBidiFormatStr</name>
<value>ILYNN</value>
</ex-property>
<ex-property>
<name>metadataBidiFormatStr</name>
<value>ILYNN</value>
</ex-property>
</list-property>
<property name="odaDriverClass">
com.mysql.jdbc.Driver
</property>
<property name="odaURL">
jdbc:mysql://localhost:3306/developpez
</property>
<property name="odaUser">
Utilisateur
</property>
<encrypted-property name="odaPassword" encryptionID="base64">
Mot de passe crypté en base 64
</encrypted-property>
</oda-data-source>
</data-sources>

Remarquons que nous renseignons le driver, l'URL de la base de données, l'utilisateur et le mot de passe cryptés en base 64.

_ Ensuite, nous avons la définition des Data Set dans la balise :

<data-sets>

Chaque Data Set est défini dans une balise :

<oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="Data Set" id="2303">

Puis suit la liste des paramètres dans la balise :

<list-property name="parameters">

Chaque paramètre est défini via la syntaxe suivante :

<structure>
<property name="name">nom_parametre</property>
<property name="paramName">nom</property>
<property name="dataType">string</property>
<property name="position">1</property>
<property name="isInput">true</property>
<property name="isOutput">false</property>
</structure>

Puis la requête est écrite dans les balises :

<xml-property name="queryText"><![CDATA[ Requete ]]\></xml-property>

_ Puis, nous avons la définition des styles entre les balises 'style'
_ Pour terminer le header, nous définissons le master page entre les balises :

<page-setup>
<simple-master-page name="Simple MasterPage" id="2">
<page-header>definition</page-header>
<page-footer>definition</page-footer>
</simple-master-page>
</page-setup>

_ Enfin, nous avons dans la balise « body » le détail de chaque élément du rapport.

XI - Conclusion

Ce tutoriel est terminé. Vous avez pu analyser tout les éléments que BIRT vous propose. Vous êtes maintenant à même dé réaliser vos rapports.
Merci d'avoir suivi ce tutoriel et à bientôt !

XII - Remerciement

Je tiens à remercier ovh pour ses nombreuses idées ainsi que jacques_jean pour la relecture orthographique.