5 Replies Latest reply: Mar 24, 2017 11:20 AM by Sébastien Fatoux RSS

    fixer une valeur texte dans un graphique

    f m

      Bonjour

       

      Mes dimensions :

      Jour

      Evenement

       

      Expression : (heurefin-heuredébut)

       

      je représente dans un graphique empilé les heures travaillées des machines. je souhaite fixer la valeur des machines avec un nom.

      J'ai essayé avec plusieurs set analysis comme suit :

      sum({<Machine={'LAV-01']>} (heurefin-heuredébut)) et plusieurs combinaison sans résultat..

       

      Merci de votre aide sur ce point.

       

      Francois

       

      stacked chart.JPG

        • Re: fixer une valeur texte dans un graphique
          Sébastien Fatoux

          Je ne comprend pas ce que tu veux faire.

           

          Peux-tu essayer d'expliquer autrement.

           

          Si tu peux fournir ton application ou une copie avec un extrait des données et ton objet graphique, cela pourrait permettre de mieux t'aider sur cette question et sur l'autre que tu as posé.

            • Re: fixer une valeur texte dans un graphique
              f m

              Bonjour Sébastien

               

              ci joint mon application (je n'ai pas encore la version avec licence)

               

              J'ai créé une application pour voir l'utilisation de machines.

              je voudrais afficher plusieurs machines sur une même page et donc cloner puis "bloquer" mes graphiques par machine

               

              est ce plus clair?

               

              pour mon 2eme post, c'est sur ce même graphique que je souhaite changer les échelles des axes.

                • Re: fixer une valeur texte dans un graphique
                  Sébastien Fatoux

                  Bonjour François,

                   

                  Vu que tu n'as pas les licences, je ne t'envoie pas l'application modifiée car tu ne pourra pas l'ouvrir.

                   

                  J'ai pu bloquer le graphe sur une machine, mais j'ai constaté quelques points étranges.

                   

                  Ci-dessous 2 copies d'écran pour des machines différentes. Tu peux voir que le graphe de gauche (le tien) change alors que les 2 graphes de droite (ceux que j'ai bloqués) ne change pas. J'ai sélectionné un jour pour que la comparaison soit plus facile à réaliser.

                  Tu peux également constater que entre ton graphe et le mien, il y a quelques petites différences, je l'expliquerai plus bas.

                  Community_1236445_1.png

                  Community_1236445_2.png

                  Dans ton graphe, il y a quelques NumEvent qui manquent. C'est du à la façon dont les données sont triées. Dans ton graphe, tu tries les NumEvent en fonction de TrancheHD2. Et le problème se présente lorsque tu as 2 NumEvent dans la même TrancheHD2. L'ordre alors existant ne correspond pas obligatoirement à la logique des expressions de décalage et de durée.

                  ==> Il faut trier NumEvent par: Min({$<Machine={'LAV-01'}>} HeureDébut)

                  Note: Utilise toujours une fonction d'agrégation, sinon c'est Only() qui est utilisé et ça peut donner des résultats inattendus dans certains cas. En plus dans le cas de tes graphes bloqués, il ne faut pas oublier de spécifier ta machine.

                   

                  Voici les expressions pour bloquer tes graphes:

                  • Durée
                    • RangeMax(Above(Max({$<Machine={'LAV-01'}>} HeureFin),0,RowNo())) // Upper limit
                      - RangeMax(
                            
                      Min({$<Machine={'LAV-01'}>} HeureDébut),
                            
                      RangeMax(Above(Max({$<Machine={'LAV-01'}>} HeureFin),1,RowNo()-1))) // Lower limit
                  • Couleur d'arrière plan
                    • if(Only({$<Machine={'LAV-01'}>} Programme)= 'P1 : INSTRUMENTS', RGB(154,205,40),
                      if(Only({$<Machine={'LAV-01'}>} Programme)= 'P1 : LAVAGE MANUEL', RGB(238,180,34),
                      if(Only({$<Machine={'LAV-01'}>} Programme)='P2 : INSTRUMENTS COELIO', RGB(131,111,255),
                      if(Only({$<Machine={'LAV-01'}>} Programme)='P2 : LAVAGE ULTRASONS', RGB(0,238,118),
                      if(Only({$<Machine={'LAV-01'}>} Programme)='P3 : CONTAINERS', RGB(127,127,127),
                      if(Only({$<Machine={'LAV-01'}>} Programme)='P4 : PLATEAUX', RGB(255,185,252),
                      if(Only({$<Machine={'LAV-01'}>} Programme)='P5 : INSTRUMENTS NEUFS', RGB(237,145,33),
                      if(Only({$<Machine={'LAV-01'}>} Programme)='P6 : DESINFECT. THERMIQUE 15m', RGB(255,215,0),
                      RGB(198,113,113)))))))))
                  • Décalage de barre
                    • if(IsNull(Above(Only({$<Machine={'LAV-01'}>} HeureDébut))),
                             
                      Min({$<Machine={'LAV-01'}>} HeureDébut),
                             
                      RangeMax(0,Min({$<Machine={'LAV-01'}>} HeureDébut)- RangeMax(Above(Max({$<Machine={'LAV-01'}>} HeureFin),1,RowNo()-1))))
                  • Tri de NumEvent
                    • Min({$<Machine={'LAV-01'}>} HeureDébut)
                    • Re: fixer une valeur texte dans un graphique
                      f m

                      Bonjour Sebastien

                       

                      Super Génial, merci beaucoup. Je voyais bien que certaines durées n'était pas affichées mais je pensais que ça venait de mes intervalles qui n'était pas assez fin.

                       

                      Pour mes NumEvent, en fait je voulais compter le nombre d'evènement par jour. . mais ça n'a pas marché, en faisant autonumber(NumEvent,HeureDebut) as evenement...

                       

                      Je ne comprends pas le if(only) au lieu du 'if' tout simple que j'avais mis, est ce une bonne pratique ou est ce pour uen autre raison? j'ai regardé sur l'aide de qlik et je ne comprends pas trop l'usage à part de border complètement la condition par sécurité?

                       

                       

                      Je fais du lobbying en interne pour les licences!!!

                       

                      C'est aussi grâce a Henric Cronström  et sa recette pour un graphique en gantt que j'ai essayé d'appliquer..


                      Encore merci pour l'aide..

                       

                        • Re: fixer une valeur texte dans un graphique
                          Sébastien Fatoux

                          Concernant l'ajout du Only :

                           

                          Dès que tu utilises un champs dans une expression, il faut penser à l'associer à une fonction d'agrégation. Si ce n'est pas fait, QlikView va utiliser la fonction d'agrégation Only() par défaut, ce qui peut amener à des résultats inattendus.

                           

                          La fonction d'agrégation détermine simplement le comportement a appliquer lorsqu'il y a plusieurs ligne de données.

                           

                          De plus, si tu veux appliquer un set analysis, tu dois utiliser la fonction d'agrégation.