12. Gestion des rapports JETT

La plateforme Ontomantics permet de générer trois types de rapports : les rapports Jasper, les rapports XDoc et les rapports JETT. Les rapports Jasper peuvent générer des fichiers sous différents formats (PDF, Excel, etc.) ; les rapports XDoc utilisent des fichiers au format Word Docx qu’ils remplissent avec des variables ; les rapports JETT utilisent des fichiers au format Excel qu’ils remplissent avec des variables.

12.1. Génération de rapports JETT

En plus du format Docx, la plateforme gère également la génération de fichiers au format Excel (XLS ou XLSX). Le principe est identique, il s’agit de générer un fichier Excel en remplissant un fichier de référence (ou Template) avec des variables, des boucles, des conditions mais aussi des opérations arithmétiques, etc.

Pour créer un rapport JETT, il faut cliquer sur l’onglet Conception, puis sur (Gérer les rapports). Cliquer sur le bouton pour créer un rapport. Dans le champ Type, choisir JETT. Il est également possible de faire un clic droit sur la ligne Liste des rapports JETT puis sur Nouveau rapport pour créer directement un rapport JETT.

Il faut alors choisir le type de fichier template qui servira à générer les variables utilisées dans le document. Le template peut être :

  • un fichier chargé de façon statique : dans ce cas, il suffit d’insérer le fichier Excel de référence ; la plateforme Ontomantics détecte automatiquement les variables et les créé automatiquement.

  • un fichier chargé de façon dynamique : dans ce cas, il faut sélectionner la variable préalablement créée pour générer le template.

_images/Template_statique.png

Choix d’un fichier Excel statique

_images/Template_dynamique.png

Choix d’un chargement dynamique depuis une variable à créer

Dans ce deuxième cas, si la variable n’existe pas encore, il est possible de la créer directement depuis cet écran ; il suffit de sélectionner Créer une nouvelle variable et de cliquer sur Sauvegarder. Une fenêtre popup permet alors de créer la variable en renseignant son nom et sa valeur initiale.

_images/Variable_jett.png

Il est possible de sélectionner une variable de contexte en cliquant sur ${}. Un deuxième popup permet de la sélectionner depuis la liste.

_images/Variable_contexte.png

Il est également possible d’en créer une depuis cette fenêtre ; une troisième popup s’affiche alors, demandant de renseigner la clé, le type et la valeur de la variable.

_images/Variable_contexte_nouvelle.png

L’import du fichier template se fait en sélectionnant le fichier depuis la machine de l’utilisateur. Cliquer sur le bouton Sélectionner un fichier afin d’ouvrir une fenêtre popup permettant de sélectionner le fichier. Une fois le fichier sélectionné, l’envoi se fait automatiquement. Si aucune erreur n’est détectée, l’onglet Contenu affiche la liste des variables détectée par la plateforme. À tout moment, il est possible de recharger un nouveau fichier template, en appuyant sur le bouton Charger le fichier template dans l’longlet Propriétés. Les nouvelles variables trouvées s’ajoutent alors aux anciennes. Il est également possible de télécharger le fichier template en cliquant sur le bouton Télécharger.

_images/Liste_variables_JETT.png

Il faut ensuite « câbler » les variables trouvées dans le document, avec les données de la plateforme. Sélectionner un champ dans la liste centrale, puis choisir le type de données parmi la liste suivante :

  • Texte

  • Entier

  • Décimal

  • Booléen

  • Date

  • Élément complexe

Cocher la case Est une liste d’éléments s’il s’agit d’un élément multiple. Choisir ensuite le type de champ à rattacher à la variable. Les types sont les suivants :

  • Contrôle

  • Champ d’un jeu de données

  • Variable

  • Constante

  • Expression

Pour une variable, le fait de créer une nouvelle variable depuis cet écran aura pour effet de proposer par défaut comme nom de variable, le nom du champ JETT (modifiable en saissant un nom différent).

_images/Nouvelle_variable_jett.png

Le nom de variable proposé est identique à celui du champ du document JETT

Les champs sont alors rattachés à des données de l’application Ontomantics.

12.2. Création d’un tableur Excel de référence

Un tableur Excel « modèle » ou « template » se présente de la façon suivante :

_images/Modele_excel.png

Dans le fichier Excel, la variable est directement insérée dans la cellule du tableau. Ainsi, une variable basique se présentera sous cette forme : ${variable}.

Il est possible de réaliser différentes opérations, comme des boucles ; ainsi, une boucle foreach par exemple, se présente ainsi :

  • le début de la boucle se trouve dans la 1e cellule : <jt:forEach items="${Event}" var="item">

  • chaque cellule contient un élément de la boucle

  • la dernière cellule clos la boucle : </jt:forEach>

_images/Boucle_foreach_excel.png

Exemple de boucle foreach dans un fichier modèle Excel

Il est même possible d’imbriquer des boucles :

_images/Boucle_imbriquee_excel.png

Exemple de boucle foreach imbriquée dans une boucle

Ici nous avons :

  • un premier foreach dans la 1e cellule comme dans l’exemple précédent

  • un foreach imbriqué dans une cellule : <jt:forEach items="${item.Matos}" var="item2" copyRight="true">${item2.Largeur}

  • le déroulement de ce foreach imbriqué dans les autres cellules

  • la fin du foreach imbriqué : ${item2.Poids}</jt:forEach>

  • la fin de la boucle globale : </jt:forEach>

Il est possible d’utiliser les formules arithmétiques d’Excel dans la bibliothèque JETT, comme par exemple la somme : $[SUM(E6)]

Une variable insérée dans le titre d’une feuille permet de dupliquer les feuilles du tableau (ex : ${Event.Titre} inséré dans le titre d’une feuille).

12.3. Utiliser un graphique avec JETT

  • Commencer par créer un tableau simple avec des données de test :

    _images/Tableau_simple.png

    Comme il n’est pas possible de savoir à l’avance le nombre de lignes qui seront insérées dans le fichier final, il faut créer une plage dynamique : dans l’onglet Formules, cliquer sur Définir un nom.

    _images/Nouveau_nom.png
  • Saisir un nom dans le champ Nom : (ici dyn) ;

Dans le champ Fait référence à :, saisir la formule suivante : =DECALER(Feuil1!$B$2;0;0;NBVAL(Feuil1!$B:$B)-1)

  • Les données commencent à partir de B2. Noter le -1 à la fin pour ignorer la première ligne d’entête.

    Dans l’onglet Insertion, cliquer sur Secteur.

  • Configuration du graphique : Faire un clic droit sur le graphique, puis cliquer sur Sélectionner des données…. Dans Entrées de légendes (Série), cliquer sur Ajouter :

    _images/Modifier_serie.png

    Dans Nom, saisir le titre du graphique. Dans Valeurs de la série, utiliser le nom de la plage définie précédemment : =Feuil1!dyn, puis valider.

    Dans Étiquettes de l’axe horizontal (abscisse), cliquer sur Modifier.

    _images/axes.png

    Dans Plage d’étiquettes des axes, utiliser =Feuil1!$A$2:$A$1000. (Utiliser une grande plage, de A2 à A100 ou plus).

    _images/source.png
    _images/graphique_dynamique.png

    Nous pouvons observer qu’en insérant de nouvelles valeurs, le graphique se met correctement à jour.

    Remplacer ensuite les données de la première feuille par des variables :

    _images/label.png

    Dans la plateforme Ontomantics, créer ensuite un nouveau rapport JETT et importer le fichier. Surtout, cocher la case Est une liste d’éléments pour la variable Donnees. Créer un jeu de données et lier les champs aux variables Label et Valeur.

    _images/Lier_champs.png

    Voici le fichier template créé pour cet exemple : Téléchargement

12.4. Utiliser un tableau croisé dynamique avec JETT

  • Commencer par créer un tableau simple avec des données de tests :

    _images/Tableau_simple_1.png

    La feuille est nommée « Base »

    Le fichier doit être de préférence au format XLSX (le format XLS nécessitant quelques opérations supplémentaires). Comme il n’est pas possible de connaître à l’avance le nombre de lignes qui seront insérées dans le fichier final, il faut créer une plage dynamique. Dans l’onglet Formules, cliquer sur Définir un nom.

    _images/Nouveau_nom_1.png

    Saisir un nom dans le champ Nom : (ici : dyn). Dans le champ Fait référence à :, saisir la formule suivante : =DECALER(Base!$A$1;;;NBVAL(Base!$A:$A);NBVAL(Base!$1:$1)) ou plus simplement, si le nombre de colonnes est fixe : =DECALER(Base!$A$1;;;NBVAL(Base!$A:$A);2) (« Base » étant le nom de la feuille »).

    Dans l’onglet Insertion, cliquer sur TblCroiséDynamique.

    _images/Tab_dyn.png

    Dans Sélectionner un tableau ou une plage, saisir le nom de la plage dyn.

  • Configuration du tableau croisé dynamique :

    _images/Config_tab_dyn.png

    Sélectionner les champs à inclure dans le rapport. Il est alors possible de modifier les données de la première feuille, enregistrer, fermer et rouvrir le fichier pour vérifier que la formule est correcte et que les calculs du tableau croisé se mettent correctement à jour à l’ouverture.

    Remplacer ensuite les données de la première feuille par des variables :

    _images/Variables_tab_dyn.png
  • Étapes supplémentaires nécessaires en cas d’utilisation du format XLS uniquement :

    Effectuer un clic droit sur le tableau, puis cliquer sur Options du tableau croisé dynamique… :

    _images/Options_tab_dyn.png

    La plateforme étant incapable de mettre à jour les données du tableau croisés dynamique après avoir rempli les données, il faut impérativement cocher la case Actualiser les données lors de l’ouverture du fichier.

    Les tableaux croisés dynamiques ne doivent contenir aucune variable JETT visible telle que : ${donees.label}, $[  ] ou des balises <jt: >. Il faut penser à les effacer avant d’enregistrer le fichier, mais également à chaque fois que le fichier sera réouvert (à cause de la case cochée précédemment).

    Dans la plateforme, créer ensuite un nouveau rapport JETT et importer le fichier. Cocher la case Est une liste d’éléments pour la variable Donnees. Créer ensuite un jeu de données et lier les champs aux variables Label et Valeur.

    _images/Lier_champs_1.png

Voici le fichier template créé pour cet exemple : Téléchargement

Ces exemples succints ne présentent pas l’intégralité des possibilités offertes par JETT. Pour obtenir plus d’informations sur l’utilisation de la bibliothèque de génération de rapports Excel JETT, se reporter à la documentation en ligne, accessible à l’adresse suivante :

http://jett.sourceforge.net/index.html