5 Replies Latest reply: Apr 16, 2018 10:47 AM by Axel Beaugrand RSS

    Création d'un CAL sur champ DATE

    Axel Beaugrand

      Bonjour à tous,

       

      Environnement:

      Je suis confronté à une base de comptabilité avec ces informations sur une table:

      ECRITURES => DATE_ECRIT, CREDIT, CODE_BTQ, PLAN_COMPT, COMPTE,

       

      ID_SI, FAMILLE

       

       

      Contexte :

      Le responsable informatique aimerait obtenir le montant des factures réalisés pour chaque mois au cours de l'année sur différentes BTQ. Le champ ID_SI (renseigne le type de facture = data, téléphonie par différent 'prestataire'). J'ai confronté les données avec le logiciel je remonte les bonnes informations. Cependant je n'ai pas crée de calendrier : j'ai crée les champs 'année' et 'mois' par rapport au champ DATE_ECRIT.

       

      Problématique :

      Je dois créer un tableau calculant le total de facture réalisé en fonction de la famille 'de facture' sur chaque mois pour le confronter au budget. J'aimerai donc du coup :

      • Créer un calendrier pointant sur le champ DATE_ECRIT
      • Créer une variable indiquant le numéro de mois de 1 à 12 : Bon cette variable n'est pas la plus dure à réaliser.
      • Différencier les différents montant par rapport au champ ID_SI pour ainsi faire le filtre sur Syntes Analysis

       

      Capture Ecran de ce que j'aimerai obtenir :

       

       

      Pour le moment je suis bloqué sur la création de mon Calendrier, le gros est fait la recherche de données il me manque je pense quelque chose : une approche ou une idée ...

       

      En vous remerciant de votre aide,

      A.

        • Re: Création d'un CAL sur champ DATE
          LAURENT CLOATRE

          Axel,

           

          Je te recommande la lecture de ce tuto :Calendrier QlikView

            • Re: Création d'un CAL sur champ DATE
              Axel Beaugrand

              Bonjour Laurent,

              En te remerciant pour ton attention et ton partage d'opinion...

               

              Justement j'ai appliqué exactement ce calendrier mais je crains ne pas utilisé encore le bon champ lorsque j'utilise mon développement, enfin pour être honnête je ne sais pas sur qu'elle champ du script utilisé je dois joindre la table calendrier ...

              J'ai ordonner comme l'indique le tuto les données en ordre ASC dans une table résident ...

              J'ai peut être loupé un truc : j'ai ça :

               

              ID_FOURNI:
              load

              AutoNumberHash256(date(ecr_date),V_CODE_ETB) as @CLE_REALISE,

              ecr_repere  as ID_SI,
              V_CODE_ETB  as ETB,
              ecr_plan  as PLAN_COMP,
              date(ecr_date) as ECRIT_DATE_F,
              //Ecrit_année as ECRIT_ANNNE_F,
              //Ecrit_mois as ECRIT_MOIS_F,
              COMPTE as COMPTE_F,
              ecr_libel as LIBELLE_F
              //ecr_credit as CREDIT_F TEST
              Resident Ecritures
              Where ecr_plan='F'
              and len(ecr_repere)>0
              order by ecr_date ASC;

              left  join
              LOAD
              famille  as FAMILLE,
              compte  as COMPTE_6,
              ecr_repere  as ID_SI
              FROM
              [COMPTE-SI.xlsx]
              (
              ooxml, embedded labels, table is Feuil1);

              Drop Table Ecritures; // TEST

               

               

              // Définir les Dates Min et Max
              Let vMinDate = Num(Makedate($(V_AnneeRef),1,1));
              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 = ;