ERP en LOGICIEL LIBRE dédié aux PME-PMI

           Devenez partenaire Principal ou Majeur de Neogia


Integration BIRT

Contents

Présentation

BIRT est un système de reporting open source basé sur Eclipse pour les applications web, spécialement celles basés sur Java et J2EE. BIRT possède deux composants principaux: Un designer de rapports basé sur Eclipse, et un composant runtime qu'on peut ajouter à notre application web. BIRT offre aussi un moteur pour les graphes qui vous laisse ajouter des graphes à votre propre application.

Dans cet article nous n'allons pas détailler les fonctionnalités de BIRT surout coté concepteur de rapport, car plein d'exemples sont diponibles sur le site http://www.eclipse.org/birt

Ce qui nous importe c'est de créer un rapport qui se base sur l'Entity Engine d'OFBIZ.

Intégration du plug-in Birt dans eclipse

les étapes d'intégration du plugin Birt dans eclipse

Intégrer BIRT dans un module Néogia

La façon d'intégration de BIRT qui sera présenté n'est surement pas la plus séduisante, mais ça vous donnera un certain controle sur le visualiseur de rapports à travers les filtres d'OFBIZ.

BIRT offre une application web prête à l'emploi, qu'on peut packager dans un module Ofbiz. par exemple un module qui porte le même nom.

Voici les étapes.

<ofbiz-component name="birt"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/ofbiz-component.xsd">
   <resource-loader name="main" type="component"/>
       
   
   <webapp name="birt"
   	    title="Birt"
   	    server="default-server"
   	    location="webapp/birt"
           base-permission="REPORTING"
   	    mount-point="/birt"/>   	    
</ofbiz-component>

Si tout marche bien vous aurez un écran qui ressemble à celui ci Image:Birt_main.JPG

Votre premier rapport

dans l'exemple nous allons voir comment générer un rapport qui va nous lister les lignes de stocks du module Facility.

On commence par créer un état vierge dans le designer de BIRT: Image:Birt-new-report.JPG

La prochaine étape sera la création d'un data source en utilisant le menu contectuel sur l'élément "Sources de données" dans l'explorateur de données. Vous devez faire attention lors de la création de choisir le type "Source de données nécéssitant un script" car nous allons utiliser un script qui fait appel à l'objet delegator de l'entity engine d'OFbiz.

Image:Birt-data-source.JPG

Maintenant on crée un jeu de données ou on va définir les champs de sorties et le script qui va les alimenter.

Image:Birt-data-set.JPG

Dés que le data set "stockDS" est créé on double clique dessus pour faire apparaitre la fenêtre de dialogue pour ses propriétés

Dans la section "champs de sortie" on va définir les champs

Image:Birt-ds-fields.JPG

Là on va rentrer dans les chose sérieuses et définir les script. en fait le data set possède deux évènement qui nous intéresse "Open" et "Fetch". "Open" sera éxécuté à l'ouverture du data set et "Fetch" à chaque ligne de données. On va commencer par "Open"

vous faite rentrer ce script

 delegator = Packages.org.ofbiz.entity.GenericDelegator.getGenericDelegator("default");
 items = delegator.findAll("StockItemAndFacility");
  
  
 totalrows=items.size();
 currentrow=0;

Vous devez vous assurer que la liste des événement est sur Open comme sur la figure ci-dessous

Image:Birt-ds_open-script.JPG

on continue par la définition de l'evenement "fetch" Le script suivant doit être entré dans la section de l'évenement 'fetch'

 if( currentrow >= totalrows ){
   return( false );
 }
 var item = items.get(currentrow);
 row["Emplacement"] = item.get("nFacilityIdName");
 row["Article"] = item.get("prdtProductId");
 row["Quantité"] = item.get("quantityOnHand");
 row["Prix U"] = item.get("unitCost");
 currentrow = currentrow + 1;
 return ( true );

Image:Birt-ds_fetch-script.JPG

Finalement, on glisse les champs de la dataset sur la ligne détails du rapport. Vous allez voir que les champs de l'entête vont se remplir automatiquement.

Image:Birt-report-dragndrop.JPG

Venu le moment de vérité, vous tapez l'URL https://localhost:8443/birt/frameset?__report=stock_item.rptdesign

vous devez avoir un résultat pareil

Image:Birt-final-report.JPG

Conclusion

Ce n'est pas tout, avec BIRT vous pouvez maintenant ajouter des images, des couleurs à votre tableau et même des filtres ou des champs calculé à la manière de Excel. En utilisant des Data source utilisant un script vos rapport seront facilement migrables et aussi vous allez tirez parti de la performance de l'entity engine d'OFbiz et de son cache. Cette solution constitu un change à Jasper reports dans le fait qu'elle supporte plusieurs data sources donc vous pouvez mélanger vos données Néogia avec une feuille Excel ou tout autre base de données.