OSBI.FR - Open Source Business Intelligence

Tableau Pentaho CTools avec colonnes dynamiques

A l’occasion du Pentaho Day, des retours d’expériences variés ont été présentés par plusieurs clients d’Atol Conseils & Développements.

L’un de ces cas d’utilisation était particulièrement intéressant, puisqu’il a montré qu’il était possible d’enrichir la plate-forme Pentaho pour répondre à un ou plusieurs besoins spécifiques (n’est-ce donc pas l’un des atouts principal de l’open source ? ).

Je retranscris ce besoin dans cet article en remerciant encore vivement Benoît du Ministère de l’Intérieur de m’avoir mis à disposition son code source. 😉

Custom Table Component – Guide d’utilisation

Pour ceux qui connaissent les CTools, le composant « Table Component » permet facilement de présenter sous forme tabulaire des données issues d’une requête. Seul hic, le paramétrage de l’affichage des colonnes ne peut être effectué par l’utilisateur final.

Qu’importe ! Ce problème peut être solutionné en ajoutant un « custom component » dans les CTools…

Pour cela, il vous suffit de récupérer l’archive « TableWithButtonsComponent.zip » et d’extraire celle-ci sur votre serveur pentaho, dans le répertoire /biserver-ce/pentaho-solutions/system/pentaho-cdf-dd/resources/custom/components (redémarrage obligatoire)

Pour tester, il suffit ensuite de créer un nouveau dashboard, en sélectionnant le composant dans la catégorie « Custom » :

custom_table_component

Puis ensuite renseigner la propriété « Buttons definition » avec les 2 arguments et leurs fonctions javascript associées ci-dessous :

custom_table_component_03

colvis :

function () {
return ({collectionLayout: 'fixed four-column'});
}

Valeurs possibles : ‘fixed one-column’,’fixed two-column’,’fixed three-column’,’fixed four-column’

excel :

function(){
return ({sheetName : 'Tableau (export Excel)'})
}

Une fois que vous aurez effectué ces paramétrages, vous obtiendrez le résultat suivant :

 

L’exemple est disponible au téléchargement « Dashboard TableWithButton.zip » (Importez ce zip avec le bouton « Charger » de la console utilisateur Pentaho – Attention, ceci a été testé sur la version 5.4 uniquement)

En bonus : Génération PDF

Vous trouverez également dans le dashboard un exemple de code javascript qui permet d’exporter en PDF le dashboard (voir le détail dans l’objet « Button Component » correspondant au bouton « PDF »).

Excellent mois d’août à tous !

4 Comments

  1. Bonjour,
    je souhaite construire un tableau avec des colonnes dynamique (car je connais pas le nombre de colonne à l’avance).
    Pour se faire j’ai créé une requete pour récupérer les données sur lesquels je souhaite boucler et que j’ai utilisé dans un queryComponent pour en faire une requete ou le select est créé dynamiquement (en js donc).

    Le premier select permet d’obtenir:

    DYN_INTERN,DYN_LOCALE,DYN_NATION,DYN_REGION,test1,test2,test3,test4,test5

    J’obtiens
    SELECT act_annee_debut_no, count(*) ,
    sum(case when ref_dynam_code_lb= ‘DYN_INTERN’ then 1 else 0 end ),
    sum(case when ref_dynam_code_lb= ‘DYN_LOCALE’ then 1 else 0 end ),
    sum(case when ref_dynam_code_lb= ‘DYN_NATION’ then 1 else 0 end ),
    sum(case when ref_dynam_code_lb= ‘test4’ then 1 else 0 end ),
    sum(case when ref_dynam_code_lb= ‘test1’ then 1 else 0 end ),
    sum(case when ref_dynam_code_lb= ‘test2’ then 1 else 0 end ),
    sum(case when ref_dynam_code_lb= ‘test3’ then 1 else 0 end ),
    sum(case when ref_dynam_code_lb= ‘test5’ then 1 else 0 end ),
    sum(case when ref_dynam_code_lb= ‘DYN_REGION’ then 1 else 0 end )
    from teln_actions group by act_annee_debut_no order by act_annee_debut_no

    Cette requete est mis dans un paramètre mais je ne vois pas comment éxécuter cette requête par la suite..

    Merci d’avance de votre aide,

    Cordialement,

    Guillaume D

  2. Si j’avais moi-même à faire ce dev, j’utiliserai plutôt une transformation kettle comme source de données. En terme de requetage dynamique c’est le top !

  3. Bonjour,

    Tout d’abord merci pour votre réponse. Pensez vous qu’il y a une issu sans passer par une transformation kettle?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*