7 Replies Latest reply: Jan 24, 2017 9:37 AM by Bertrand Lantuéjoul RSS

    Courbes affichées en fonction d'une séléction

    Bertrand Lantuéjoul

      Bonjour à tous.

       

      J'ai du créer en dur une liste de sélection. Elle se nomme: "Sonde".

       

      Sonde:

      Load * Inline [

      Sonde

      Sonde1

      Sonde2

      Sonde3

      etc...

       

      J'ai également un graphique qui reprends toutes les courbes correspondant à mes sondes.

      2017-01-23 15_50_55-QlikView x64 Personal Edition - [GTO_].png

       

      Comme vous le voyez, c'est surchargé. Il faut que je donne la possibilité à mes utilisateurs de n'afficher que les courbes qu'ils souhaitent. J'ai donc créé une liste de sélection nommée "Sonde" et qui reprends l'ensemble de mes sondes.

      Dans mon graphique, chaque expression se présente comme suit: if(IsNull(Sonde),1,if(Sonde='Sonde 1',1,0))

      J'ai essayé aussi: if(len(Sonde)=0,1,if(WildMatch(Sonde,'*Sonde 2*'),1,0))

      Mais ça ne fonctionne pas. En fait, dans ma liste de sélection, si je clique sur une sonde et une seule, j'ai bien une seule courbe affichée. Mais si j'en sélectionne plusieurs en même temps, toutes sont affichées et pas seulement celles que j'ai sélectionné.

       

      Quelqu'un peut-il me venir en aide svp.

        • Re: Courbes affichées en fonction d'une séléction
          Sébastien Fatoux

          Bonjour,

           

          Pouvez-vous fournir une application QlikView avec un jeux de données et le graphique, ou fournir un peu plus d'information sur la dimension utilisée (et un exemple des valeurs possibles) et l'expression ou les expressions utilisées.

            • Re: Courbes affichées en fonction d'une séléction
              Bertrand Lantuéjoul

              Non je ne peux pas. Je n'ai que la version gratuite de qlikview donc vous ne pourrez pas ouvrir le rapport sur votre poste. Concernant les données, elles sont extraites de bases hétérogènes et non d'un datamart et constituent des données à caractère confidentiel (santé). Je suis désolé mais je ne crois pas pouvoir vous fournir plus que mon explication.

                • Re: Courbes affichées en fonction d'une séléction
                  Sébastien Fatoux

                  Bonjour Bertrand,

                   

                  Si les données sont confidentielles, je comprend très bien que tu ne puisse pas les transmettre.

                  Pour ton information, vu que tu utilises la version gratuite, c'est toi qui ne pourrais pas ouvrir une application que je t'enverrai. Mais moi qui est une licence, je peux ouvrir tes applications sans problème.

                   

                  Si tu ne peux pas fournir un peu plus d'information:

                  • dimension utilisée dans ton graphe (et un exemple des valeurs possibles)
                  • l'expression ou les expressions utilisées)
                  • une image de ton diagramme

                  , je crains que l'on ne puisse pas t'aider.

                   

                  C'est un peu comme si tu nous demandais combien font 2 + ...

                    • Re: Courbes affichées en fonction d'une séléction
                      Bertrand Lantuéjoul

                      Voici le fichier Qlikview.

                       

                      Le soucis porte sur l'onglet "Volume par sonde".

                      A gauche, on voit la liste "Sonde" qui est crée par le script:

                      Sonde:

                      Load * Inline [

                      Sonde

                      Pages à trier

                      Pages triées

                      Pages numérisées

                      Tâches générées

                      Tâches triées

                      Tâches de tri traitées

                      Tâches traitées

                      Tâches annulées

                      Tâches induites crées

                      Tâches induites traitées

                      Tâches induites annulées

                      Tâches affectées

                      Factures

                      Factures liquidées

                      PEC

                      Feedback

                      Documents générés

                      Courriers

                      Courriers feedback générés

                      Courriers feedback envoyés

                      Fax

                      Mails

                      Appels téléphoniques

                      Conventions

                      ];

                       

                      Au centre, on voit le graph "Volume par sonde" qui est surchargé.

                      Chaque fois qu'on clic sur un élément de la liste "Sonde", seule la courbe correspondante est affichée ce qui me convient.

                      Là où ça ne fonctionne plus, c'est quand on sélectionne plus d'une "Sonde". Si j'en sélectionne deux ou plus, toutes les courbes s'affichent sur le graph comme si je n'avais rien sélectionné.

                      Dans mon graph, j'ai juste la dimension Date (=WeekDay(Date)&' '&date(date#(Date,'YYYY-MM-DD'),'DD-MMM-YYYY').

                      J'ai ensuite une expression pour chaque sonde par exemple: Sum(VolumeAppelsTelephoniques)

                      J'ai coché "Conditionnel" et j'ai rempli les expressions comme cet exemple: if(IsNull(Sonde),1,if(Sonde='Appels téléphoniques',1,0)).

                      J'ai donc autant d'expressions et de conditionnelles que d'élément dans ma liste "Sonde".

                       

                      J'espère que ça suffira pour m'aiguiller

                       

                       

                      Cordialement

                        • Re: Courbes affichées en fonction d'une séléction
                          Sébastien Fatoux

                          C'est beaucoup plus clair.

                           

                          Ta structure de données n'est pas génial, ce qui complique un peu les choses au niveau de l'interface. Il faudrait toujours essayé de te rapprocher d'un modèle en étoile (ou flocon).

                           

                          En gardant ta structure, il faut utiliser les condition suivantes (en remplaçant le nom de la sonde) :

                           

                          WildMatch('|'&Concat(Sonde,'|')&'|', '*|Appels téléphoniques|*')

                           

                          Explication :

                          • Il faut toujours utiliser une fonction d'agrégation. Si tu n'en met pas, il utilisera par défaut la fonction d'agrégation Only() qui retourne la valeur sélectionnée lorsqu'il y en a qu'une sinon elle retourne Null(). C'est une des raisons pour laquelle ça ne marchait pas.
                            Dans ce cas, j'utilise la fonction d'agrégation Concat() avec le séparateur '|'.
                          • Pour ne pas avoir de problème avec le WildMatch avec des noms de sonde se retrouvant dans un autre nom de sonde, comme par exemple 'Factures' et 'Factures liquidées', je rajoute un '|' avant et après ma sélection concaténée et je recherche '*|NomDeLaSonde|*'
                          • Pas besoin de if

                           

                           

                          Note: Pour mail tu n'a pas mis Sum() dans ton expression, c'est donc Only() qui est utilisé et vu qu'il y a plusieurs valeurs par jour, rien ne s'affiche.

                  • Re: Courbes affichées en fonction d'une séléction
                    bruno bertels

                    Bonjour

                     

                    je rejoins Sébastien un peu plus de détail aidera la communauté.

                    Toutefois a ce que je comprends tu as construit ton graphique avec une dimension temporel ( Date)

                    puis ajouter différente mesure pour avoir sur ton graph la courbe de chaque sonde

                    Tu souhaites pouvoir sélectionner les différentes sondes pour n'afficher que celles-ci et alléger ton graph

                    Tu as créer une liste avec un load inline Sone 1 Sonde 2 etc , j'imagine que cette table de liste est reliée à une autre table

                    Dans ce cas plutot que d'avoir une dimension Date et ajouter une mesure par sonde ( c'est ce qui explique que lorsque tu veux en sélecitonner plusieurs tu ne peux pas a cause du If Statement)

                    Tu peux essayer ceci

                    1er Dimension : Date

                    2ème Dimension : Sonde

                     

                    Puis ta mesure Sonde globale

                    • Re: Courbes affichées en fonction d'une séléction
                      Bertrand Lantuéjoul

                      Merci beaucoup, ça fonctionne parfaitement.

                       

                      Je suis d'accord, le modèle de données est très mauvais mais je n'ai pas le choix.

                       

                      Merci encore