IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

BIRT Discussion :

"mapper" pour un graphique


Sujet :

BIRT

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 11
    Points : 8
    Points
    8
    Par défaut "mapper" pour un graphique
    Bonjour à tous,

    Voici un exemple de ce que je voudrais obtenir :
    Mon graphique représente l'état de document à un instant t.
    Dans mon fichier (data set) j'ai une colonne "type" (parmi d'autres) qui contient que 4 valeurs : administratif, comptable, fiscal et gestion.
    Je voudrait que le camembert me regroupe (selon l'état) les documents "administratif", "comptable" et "fiscal" en "autre documents"

    Il me semble que ça revient à faire un map, mais je suis pas sur puisque quand je clic sur le graph, l'onglet "mapper" dans les propriétés disparait.

    Quelqu'un serait-il m'expliquer comment faire ?

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Personnellement, je n'ai pas très bien compris!

    Peux tu être plus précis STP?

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Voici mon fichier (j'ai simplifié les données mais c'est dans le même esprit)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ID	TYPE DE DOC	        ETAT 
    1	administratif	        ouvert
    2	administratif	        ouvert
    3	fiscal	                        ouvert
    4	gestion	                fermé
    5	comptable                 	ouvert
    6	gestion	                ouvert
    7	gestion	                ouvert
    8	gestion	                fermé
    9	gestion	                ouvert
    10	gestion	                ouvert
    je veux que le graphique me donne comme info :
    ouvert : 8, dont 4 gestion et 4 autres
    fermé : 2, dont 2 gestion (et 0 autres)

    Je souhaite regrouper dans "autres" tous les documents de type comptable, fiscal et administratif.
    J'espère que c'est plus clair

  4. #4
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    C'est beaucoup plus clair

    J'aurai fait ceci dans ma requête SQL (DataSet). Comme ca, ma requête me renverrait directement ces infos au lieu de tout me détailler alors que je m'en fiche

    Donc mon conseille fait le en SQL tu gagneras du temps et de la santé

  5. #5
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Le soucis, c'est que je travaille avec une BD un peu spéciale et que je ne peux toucher au code SQL.
    Si tu as une autre idée, je suis preneuse.

  6. #6
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Ce n'est pas toi qui écrit tes DataSet de ton rapport!!!! C'est bien cela!

    Dans ce cas ca va être un peu plus dure. Je vais essayer d'y réfléchir si personne d'autre à d'idée

  7. #7
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bonjour,

    Pour cela il suffit de jouer avec les aggrégations. J'essaye de te poster un exemple dans la journée.

  8. #8
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    Bonjour,

    Tu ne disposes pas uniquement de l'outil de mapping pour faire ta nouvelle catégorie. Le plus simple est de faire une nouvelle donnée dans le binding de ton graphique : double-clique sur ton graphique, va dans l'onglet "Select Data" (ton graphique doit être associé à ton dataset), et clique sur le bouton "binding" en bas. Là tu n'as qu'à rajouter une nouvelle donnée implémentant ta règle de mapping (de simples if-else), et c'est bon.

  9. #9
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Je viens d'essayer mais il y a toujours quelques chose qui cloche... j'aurais encore besoin d'aide svp!
    Voici ce que j'ai fait exactement (le logiciel est en français mais ça correspond bien à ce que tu m'avais indiqué) :

    Sélection des données > Liaison de données ... > Sélection de la liaison de données > Ajouter
    et là voici le code que je rentre dans le générateur d'expression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (row["Type_Doc"] != "Gestion"){
    	row["Type_Doc "] == "Autres";
    }
    else{
    	row["Type_Doc "] == "Gestion";
    }
    Ensuite, j'ai fais glisser la colonne créée dans "Groupement facultatif" (à droite).
    Dans la zone de la série "définition de la catégorie" (en bas) j'ai row["State"] et
    dans la zone de la série "définition de la taille de secteur" (à gauche) j'ai row._rownum
    Cf. fichier joint (résultat après aperçu) :
    Au lieu d’avoir false et true je voudrais avoir Gestion et Autres.
    Les couleurs correspondent à l’état du document (ouvert, fermé, en attente).

    Concernant la proposition de BiM, j'ai essayé avec "Ajouter une agrégation" mais le résultat s'éloigne de ce que j'attends.
    Images attachées Images attachées  

  10. #10
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    On va y arriver :

    D'abord, ton code javascript comporte des erreurs :
    Citation Envoyé par Magdag Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (row["Type_Doc"] != "Gestion"){
    	row["Type_Doc "] == "Autres";
    }
    else{
    	row["Type_Doc "] == "Gestion";
    }
    Trois choses à savoir :
    • L'opérateur "==" est l'opérateur de comparaison, pas d'assignation. Tu dois utiliser l'opérateur "=". C'est pour cela qu'il t'affichait True et False et pas "Gestion", car le == renvoie un booléen.
    • la syntaxe de retour de résultat n'est pas "row["Ma Colonne"] = resultat", mais simplement "résultat". Le résultat de ton code est la dernière expression écrite.
    • Pour les opérations sur les lignes de données ("row[...]"), utilise les fonctions BIRT plutôt que les opérateurs javascript ; donc remplace l'opérateur "!=" par la fonction BirtComp.notEqual().

    Donc ton code sera plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (BirtComp.notEqual(row["Type_Doc"],"Gestion")){
    	"Autres";
    }
    else{
    	"Gestion";
    }
    Dernière chose à corriger :
    Citation Envoyé par Magdag Voir le message
    dans la zone de la série "définition de la taille de secteur" (à gauche) j'ai row._rownum
    Ici, fais plutôt une agrégation de comptage (fonction COUNT, sur n'importe quelle donnée de ton data set), ça comptera tes lignes, alors que le rownum est le numéro de la ligne, et il est différent pour chaque ligne, donc en fait ce qu'il fait c'est de choisir une valeur (en général la première), donc ce n'est pas ce que tu veux.

    Il y a peut-être d'autres choses à voir mais je te laisse fouiller pour l'instant.

  11. #11
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Trop fort !!! vraiment merci beaucoup.
    J'ai résolu mon problème grâce à vous

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo