Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
lotfiblo
Creator
Creator

Calendrier QlikView

Bonjour,

Dans ce tutoriel nous allons voir comment créer un Calendrier sur QlikView comportant les dates qui vous intéressent.


Pour créer ce calendrier, on passera par les quatre étapes suivantes :

   1- Définir une date de début et une date de fin pour le calendrier
   2- Générer toutes les dates possibles entre les dates min et max définies précédemment
   3- Créer les différentes présentations des dates (Année, mois, semaines, ...)
   4- Nettoyer ce qui n'est plus utile (tables et variables)


Vous êtes prêts ? commençons ...

1- Définir une date de début et une date de fin pour le calendrier
Le calendrier doit avoir une date de début et une date de fin (ce qu'est logique !). Selon les besoins de votre application, ces dates peuvent êtres définies de plusieurs façons. Je vais vous donner trois manières de les définir.

a- On peut définir une date en la saisissant en dur. Je vous conseil, si vous optez pour cette façon de faire, de l'utiliser uniquement pour définir la date minimum du calendrier.


b- Définir une date à partir de la date système, notamment pour la date maximum.

c- J'ai laissé le meilleur pour la fin ;), il s'agit de récupérer la date minimum et la date maximum de la table qui contient vos dates (Exemple: Table "ventes", champ: "DatesVentes").


Ci-dessous un exemple pour chacune des ces façons de faire.

LET vMinDate = Num(Makedate(2010,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'));

La fonction peek() vous permet de récupérer un enregistrement dans une colonne d'une table. "0" pour le premier enregistrement et "-1" pour le dernier enregistrement.
Néanmoins, l'utilisation efficace de cette fonction nécessite que votre colonne de date soit ordonnée de manière ascendante.

2- Générer toutes les dates possibles entre les dates min et max définies précédemment

Une fois que vous avons nos dates min et max, nous allons procéder à la génération de toutes les dates possibles entres ces dates extrêmes.


Notre première date est évidemment la date min et la seconde date sera égale à la date min +1 et ainsi de suite jusqu'à la date max.
Ainsi, en utilisant une boucle WHILE on va autogénérer une valeur de 1 pour incrémenter la valeur initiale (vMinDate) jusqu'à créer la dernière date.

ChampDate:

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

AUTOGENERATE (1)

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

La fonction IterNo() permet de renvoyer un entier indiquant combien de temps un seul enregistrement est évalué." -1", car la première itération renvoie "1" (on additionne pas à la première itération pour avoir la date min).

3- Créer les différentes présentations des dates (Année, mois, semaines, ...)

Maintenant nous disposons d'un champ "MaDate" qu'on va utiliser pour créer les différents composants de notre calendrier. je vais créer les principaux d'entre eux, et à vous de créer d'autres si vous en avez besoin.

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;

Je rappelle que Resident est un prédicat qui est utilisé pour charger des données qui sont déjà chargées.


4- Nettoyer ce qui n'est plus utile (tables et variables)

Voila nous avons crée notre Calendrier. Mais pour faire les choses proprement, on va supprimer la table "ChampDate" et les variables vMinDate et vMaxDate qui nous servent plus.

DROP TABLE ChampDate;

SET vMinDate = ;

SET vMaxDate = ;

Au final, vous allez avoir une table qui va ressembler à la suivante :

Si vous vous avez des questions, n'hésitez à laisser un commentaire.

Lotfi BENKHIDER

www.qlikdiscovery.fr

Use Qalyptus for your Qlik Sense on-premise and Qlik Sense SaaS Reporting
Connect with me on Linkedin
Labels (1)
0 Replies