4 Replies Latest reply: Feb 3, 2017 1:19 PM by Denis Tronel RSS

    Numéro de semaine ne coincide pas

    f m

      Bonjour

       

      je charge des données de 2016 avec des dates non formatées. 1 fichier consommation + 1 fichier livraison

      champ : [datelivraison]) & [semaineLivraison]

      Je charge un script de calendrier que j'associe avec mes dates (ci dessous)

       

      or [datelivraison]) & [semaineLivraison] et mes [Semaine] ne coïncident pas avec mon calendrier . J'ai un  décalage de Numéro de semaine entre mes fichiers et mon calendrier .

      De plus je vais intégrer des données en 2017 avec là encore un décalage de Numéro de semaine..

       

              

      donnée du calendrier                                                                      date issues de mes données

       

       

      Comment résoudre ce problème ?

       

      Merci de vos retours

       

                       

      Calendrier:

      // Définir les Dates Min et Max

      Let vMinDate = Num(Makedate(2016,1,1));

      //Let vMaxDate = Num(Makedate(2016,12,31));

      Let vMaxDate = Num(Makedate(Year(Now()),Month(Now()),Day(Now())));

       

      //LET vMinDate = Num(peek('VentesDate',0,'Ventes'));

      //LET vMaxDate = Num(peek('VentesDate',-1,'Ventes'));

       

      // Générer toutes les dates possibles entre la date Min et la Date Max

      ChampDate:

      LOAD date($(vMinDate)+IterNo()-1) AS MaDate

      AUTOGENERATE (1)

      WHILE $(vMinDate)+IterNo()-1<= $(vMaxDate);

       

      // Créer une table Calendrier qui va contenir les différentes représentations des dates

      Calendrier:

      LOAD

      MaDate AS Date,

      Year(MaDate) AS Année,

      'T ' & Num(Ceil(Month(MaDate)/3),'(ROM)0') AS Trimestre,

      Month(MaDate) as Mois,

      MonthEnd(MaDate)as DateFinMois,

      Week(MaDate) AS Semaine,

      Weekday(MaDate) AS JourSemaine,

      Day(MaDate) AS Jour

       

      RESIDENT ChampDate;

       

      //supprimer la table ChampDate

      DROP TABLE ChampDate;

       

      //Supprimer les variables vMinDate et vMaxDate

      SET vMinDate = ;

      SET vMaxDate = ;

        • Re: Numéro de semaine ne coincide pas
          Sébastien Fatoux

          Tes variables d'environnement contiennent-elles ces 3 variables?

          Si oui, sont-elles définie de cette manière?

           

           

          SET FirstWeekDay=0;
          SET BrokenWeeks=0;
          SET ReferenceDay=4;

           

           

          Cette configuration qui est normalement celle par défaut de Qlik, définit les semaine avec la norme ISO (Numérotation ISO des semaines — Wikipédia) ce qui à l'air d'être le cas de tes semaine de livraison  ==> 4 janvier 2016 est dans la semaine 1

            • Re: Numéro de semaine ne coincide pas
              f m

              Bonjour

               

              Merci c'est exactement ça ça marche d'un seul coup !!

              non je n'avais pas ces données par défaut (et je ne touche pas encore aux SET) ...

              par défaut j'ai ces données..

               

              SET FirstWeekDay=0;

              SET BrokenWeeks=1;

              SET ReferenceDay=0;

               

              Faut il que je corrige ces set à chaque nouveau projet ou j'ai des dates? 

               

               

              ps: pour une question sur les QVD, je refais un post?

                • Re: Numéro de semaine ne coincide pas
                  Sébastien Fatoux

                  Ces variable sont définie par défaut en fonction de votre environnement (setting windows).

                   

                  OUI, Si vous ne pouvez pas changer les setting de Windows, il faudra toujours les modifiers.

                   

                  Du coup vérifier les autres setting. Pour info, voici ceux que j'ai par défaut (pour la Suisse) :

                   

                  SET ThousandSep=' ';
                  SET DecimalSep='.';
                  SET MoneyThousandSep=' ';
                  SET MoneyDecimalSep='.';
                  SET MoneyFormat='CHF # ##0.00;CHF-# ##0.00';
                  SET TimeFormat='hh:mm:ss';
                  SET DateFormat='DD.MM.YYYY';
                  SET TimestampFormat='DD.MM.YYYY hh:mm:ss[.fff]';
                  SET FirstWeekDay=0;
                  SET BrokenWeeks=0;
                  SET ReferenceDay=4;
                  SET FirstMonthOfYear=1;
                  SET CollationLocale='fr-CH';
                  SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';
                  SET LongMonthNames='janvier;février;mars;avril;mai;juin;juillet;août;septembre;octobre;novembre;décembre';
                  SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';
                  SET LongDayNames='lundi;mardi;mercredi;jeudi;vendredi;samedi;dimanche';

                   

                  OUI, une question par post ;-)

                    • Re: Numéro de semaine ne coincide pas
                      Denis Tronel

                      Afin de compléter la réponse de Sébastien et faciliter la gestion des "SET et LET" communs à chaque début de script, une solution simple consiste à les centraliser tous dans un simple fichier .Txt au format ASCI I (par exemple <C:\monchemin\monfichierSETLET.txt>, puis de ne rappeler en début de chaque script via l'instruction :

                      en chemin "absolu" :

                      $(Include=C:\monchemin\monfichierSETLET.txt);

                      ou en chemin "relatif", par exemple si tes applis se trouvent dans C:\monchemin\mesapplis :

                      $(Include=..\monfichierSETLET.txt);

                      Fait une recherche sur le mot clé INCLUDE dans la communauté ou directement dans l'aide intégrée :

                      $(Include =filename )

                      $(Must_Include =nomdefichier )

                      Les variables include et must_include indiquent un fichier qui contient le texte à inclure dans le script. Le script entier peut ainsi être mis dans un fichier. Il s'agit d'une variable définie par l'utilisateur.

                      Les variables include et must_include se différencient par le fait que include se solde par un échec silencieux si le fichier est introuvable pendant le rechargement du script tandis que must_include génère une erreur lorsque cette situation se produit.

                      Exemples :

                      $(Include=abc.txt);

                      $(Must_Include=def.txt);

                      En d'autres termes, la construction set Include =nomdefichier n'est pas applicable.