2 Replies Latest reply: Apr 27, 2017 5:04 PM by Sébastien Fatoux RSS

    Ordre de tri par expression - Ne pas trier par état

    Bertrand Lantuéjoul

      Bonjour.

       

      Lorsque je trie par expression, qlikview considère quand même le trie par état.

      Dans le document joint, on voit en haut à droite la liste des jours de la semaine correctement triée quand rien n'est sélectionné. En revanche, si nous effectuons une sélection sur un des jours, l'ordre de trie de la liste change et le jour sélectionné s'affiche en bas de liste. J'aimerai que rien ne bouge.

       

       

      Cordialement,

        • Re: Ordre de tri par expression - Ne pas trier par état
          LAURENT CLOATRE

          Bertrand,

           

          Je pense que tu devrais passer par la fonction DUAL. Voir ci-dessous.

           

          Dual

          dual( s , x )

          Association forcée d'une représentation de chaîne arbitraire s à une représentation numérique donnée x. Dans

          QlikView, lorsque plusieurs éléments de données lus dans un champ ont différentes représentations de

          chaîne mais la même représentation numérique valide, ils partagent tous la première représentation de chaîne

          rencontrée. La fonction dual est généralement utilisée au début du script, avant que d'autres données ne

          soient lues dans le champ concerné, afin de créer cette première représentation de chaîne qui sera affichée

          dans les listes de sélection, etc.

          Exemple :

          load dual ( string,numrep ) as JourSemaine inline

          [ string,numrep

          Lundi,0

          Mardi,1

          Mercredi,2

          Jeudi,3

          Vendredi,4

          Samedi,5

          Dimanche,6 ];

          load Date, weekday(Date) as JourSemaine from unfichier.csv;

          Cet exemple de script génère un champ JourSemaine avec les jours de la semaine écrits en toutes lettres.

          QlikView considérera toujours ce champ comme un champ numérique.

          • Re: Ordre de tri par expression - Ne pas trier par état
            Sébastien Fatoux

            Salut,

             

            Tu n'as pas besoin de créer des dual car tes champs "Jour de semaine de ..." sont déjà des Dual, car ils ont été créé avec la fonction WeekDay().

             

            Tu n'as donc pas besoin de trier en fonction d'une expression, mais simplement en fonction de valeur numérique croissant.

             

            Dès que tu auras fait ça tu verras que le premier jour est le mardi, car la variable d'environnement FirstWeekDay est configurée à 1 (mardi) alors qu'elle devrait être définie à 0 (lundi)  ==> voir FirstWeekDay ‒ QlikView

             

            Un rechargement et tout sera en ordre.