9 Replies Latest reply: Jan 2, 2015 4:25 AM by Yann COURTET RSS

    Problème de filtre

    Martial SERON

      Bonjour,

       

      J'ai deux tables Tickets et Taches qui sont reliées par le [Numéro de tickets]

       

      Tickets:

      LOAD [Numéro de tickets], [Créateur du ticket]

      FROM xxx;

       

      Taches:

      LOAD [Numéro de tickets], [Créateur de la tâche]

      FROM yyy;

       

      Les deux champs de créateurs sont les mêmes utilisateurs mais je ne peux pas les relier.

      Comme tous les utilisateurs de mon appli ne créent pas forcément de tickets ou de tâches, j'aimerais avoir une table avec tous les utilisateurs et lorsque je clique sur un utilisateur, qu'il me filtre les taches créées et les tickets créés par celui-ci.

      Le problème c'est que si je clique sur un [Créateur du ticket] il me filtre les tâches créées par tous les utilisateurs pour les tickets concernés. Et vice-versa

       

      J'espère que je suis clair et que quelque'un pourra m'aider

       

      Merci

      MS

        • Re: Problème de filtre
          luc Derosne

          le lien entre les 2 tables est le numéro de ticket ?

          à un ticket correspond une ou plusieurs taches ?

          y a t-il un numéro de tache ?

          • Re: Problème de filtre
            Yann COURTET

            Salut,

             

            Ce que tu veux faire ne fonctionnera pas.

            tu as une association de base entre la tâche et le ticket, et tu veux que quand on sélectionne un individu, QlikView ne considère non plus cette relation tâche-ticket; mais considère en priorité les relations utilisateur-tâche + utilisateur-ticket.

             

            Dans le pire des cas; tu peux peut-être faire une gestion avec une table utilisateur déconnectée et des Set Analysis. A voir en fonction du design de ton application, mais ça ne me semble pas être une super idée. Je resterais sur 2 listes séparées perso.

              • Re: Problème de filtre
                Martial SERON

                Yann COURTET a écrit:


                [...] Je resterais sur 2 listes séparées perso.

                Salut,

                 

                De quelles listes parles-tu ?

                Faut-il que je supprime le lien tâches-ticket ?

                  • Re: Problème de filtre
                    Yann COURTET

                    Je t'invites à bien réfléchir sur ce que doit faire ton application et comment elle doit réagir.
                    Ce que tu essaies de faire n'est pas naturel, donc tu vas avoir des problèmes quand on te demandera de la faire évoluer.

                     

                    Si tu cliques sur MICHEL, on veut voir les tâches et les tickets créés par lui.
                    Mais, pour une tâche créée par lui, veut-on voir le ticket qui lui est rattaché ? et les autres tâches de ce ticket ?
                    Pour un ticket créé par lui, veut-on voir les tâches qui en dépendent ?

                     

                    En l'état, voici ce qui me semble le plus proche de ce que tu souhaites et qui aura ce comportement :

                    - si une tâche est crée par lui, on voit le ticket dont il dépend, mais pas les autres tâches de ce ticket (sinon, il faut lier la nouvelle table userTable au ticket et non pas aux taches)

                    - si un ticket est créé par lui, on voit toutes les tâches qui en dépendent.

                     

                    tickets:

                    LOAD * INLINE  ***

                     

                    taches:

                    LOAD * INLINE ***

                     

                    (cf post luc Derosne 29/12 13h45 pour les 2 tables au dessus)

                     

                    Et tu ajoutes celà :

                     

                    left join(taches) load numticket, createurTicket resident tickets;

                    userTable:

                    LOAD distinct numtache, createurTache as user resident taches;

                    LOAD distinct numtache, createurTicket as user resident taches;

                    drop field createurTicket from taches;

                • Re: Problème de filtre
                  luc Derosne

                  ou en faisant une table d'utilisateur :

                  ticketache.png

                  utilisateur:

                  LOAD Distinct  createurTicket as utilisateur

                                        ,createurTicket             

                  Resident tickets;

                  LOAD Distinct createurTache  as utilisateur

                  Resident taches;

                    • Re: Problème de filtre
                      Martial SERON

                      Merci de ta réponse.

                       

                      le lien entre les 2 tables est le numéro de ticket ? => OUI

                      à un ticket correspond une ou plusieurs taches ? => OUI

                      y a t-il un numéro de tache ? => OUI, unique

                       

                      J'ai essayé de faire comme toi une table d'utilisateurs mais je ne savais pas quoi mettre dedans.

                      Quand je copie ton code, il me créer une table "taches-1" en plus de "taches". Est-ce normal ?

                      Avec ta solution, si je clique sur MICHEL, il va m'afficher le TI025 mais va-t-il m'afficher la TA280 ou bien les TA200 et TA260 ?

                       

                      PS : J'ai vu que TA280 apparaît 2 fois pour deux tickets différents ce qui n'est pas possible dans mon modèle.

                        • Re: Problème de filtre
                          luc Derosne

                          et comme çà ?

                          tickets:

                          LOAD * INLINE [

                              numticket,createurTicket,dateticket

                              TI010,ALBERT,20141218

                              TI020,RENE,20141219

                              TI025,MICHEL,20141218

                              TI030,RAOUL,20141217

                              TI040,ALBERT,20141218

                              TI045,TOTO,20141220

                              TI045,PAUL,20141231

                              TI050,RENE,20141220

                          ];

                           

                           

                          taches:

                          LOAD * INLINE [

                              numtache,numticket, createurTache,importancetache

                              TA200,TI025,PAUL,haute

                              TA210,TI010,RAOUL,basse

                              TA250,TI020,MARCEL,moyenne

                              TA260,TI025,ROBERT,basse

                              TA265,TI050,TITI, haute

                              TA265,TI030,ALBERT,haute

                              TA280,TI045,SUZANNE,basse

                              TA280,TI050,MICHEL,haute

                          ];

                           

                           

                          utilisateur:

                          LOAD Distinct  createurTicket as utilisateur

                                        ,createurTicket             

                          Resident tickets;

                           

                          LOAD Distinct createurTache  as utilisateur

                          //             ,createurTache 

                          Resident taches;

                            • Re: Problème de filtre
                              Martial SERON

                              C'est bien ce que j'ai.

                              Mais il ajoute une table "taches-1".

                               

                              2014-12-29_135125.png

                               

                              Et ça ne résout pas mon problème. A savoir que si je clique sur MICHEL je veux la liste des tickets qu'il a créé et la liste des tâches qu'il a créées (tous tickets confondus).

                               

                              2014-12-29_135541.png

                                • Re: Problème de filtre
                                  luc Derosne

                                  et comme çà ?

                                  ticktach.png

                                  une piste peut être, c'est une question de relation

                                  tictab.png

                                  // 

                                  tickets:

                                  LOAD * INLINE [

                                      numticket,utilisateur,dateticket

                                      TI010,ALBERT,20141218

                                      TI020,RENE,20141219

                                      TI025,MICHEL,20141218

                                      TI030,RAOUL,20141217

                                      TI040,ALBERT,20141218

                                      TI045,TOTO,20141220

                                      TI045,PAUL,20141231

                                      TI050,RENE,20141220

                                  ];

                                   

                                   

                                  taches:

                                  LOAD * INLINE [

                                      numtache,numticket, utilisateur,importancetache

                                      TA200,TI025,PAUL,haute

                                      TA210,TI010,RAOUL,basse

                                      TA250,TI020,MARCEL,moyenne

                                      TA260,TI025,ROBERT,basse

                                      TA265,TI050,TITI, haute

                                      TA265,TI030,ALBERT,haute

                                      TA280,TI045,SUZANNE,basse

                                      TA280,TI050,MICHEL,haute

                                  ];

                                   

                                   

                                  //utilisateur:

                                  //LOAD Distinct  createurTicket as utilisateur

                                  //              ,createurTicket             

                                  // Resident tickets;

                                  //

                                  //LOAD Distinct createurTache  as utilisateur

                                  // //             ,createurTache 

                                  // Resident taches;