Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Calendrier Qlik Sense

Bonjour,

J'essaie de faire un calendrier sur Qlik Sense. j'ai donc ce script :

Date_Min:

Load num(Min("DATE CALENDRIER")) as Date_Min

Resident AXIANE_MOUVEMENTS;

LET vDateMin=num(peek('Date_Min',0,'Date_Min'));

LET vMaxDate = num(Makedate(Year(Now()),Month(Now()),Day(Now())));

Drop Tables Date_Min;

CalendrierTemp:

LOAD ($(vMinDate)+IterNo()-1) as Date_Ref

AUTOGENERATE (1)

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

Calendrier:

LOAD Distinct

     Date("Date_Ref") as "DATE CALENDRIER",

     Day(Date_Ref) as Jour,

     Weekday(Date_Ref) & ' ' &Day(Date_Ref) as Jour_lib,

     Week(Date_Ref) as Semaine,

     Year(Date_Ref) as Année,

     Year(Date_Ref)&'-S'&num(week(Date_Ref),'00') as Année_Semaine,

     Num(Month(Date_Ref)) as Mois,

     Month(Date_Ref) as Mois_Lib, 

     'T'&Ceil(Month(Date_Ref)/3) as Trimestre,

     'S'&Ceil(Month(Date_Ref)/6) as Semestre,

     Year(Date_Ref)&Num(Month(Date_Ref),'00') as Période,

     Month(Date_Ref)&' '&Year(Date_Ref) as Période_Lib,      

     AutoNumber(Year(Date_Ref)&Num(Month(Date_Ref),'00'),'Période') as Seq_Période,

     AutoNumber(year(Date_Ref)&Num(week(Date_Ref),'00'),'Semaine') as Seq_Semaine    

Resident CalendrierTemp

order by Date_Ref;

DROP TABLE CalendrierTemp;

ce script creer bien une table calendrier avec toute les date jusqu'a la date du jour, cependant la table commence au 30 decembre 1899 alors que la plus petite date de la table mouvement est 21 juin 2017.

Merci pour votre aide

1 Solution

Accepted Solutions
christophebrault
Specialist
Specialist

Bonjour,

Dans CalendrierTemp tu utilises vMinDate alors que ta variable a été créée en : vDateMin


Le problème doit venir de là car ton calendrier commence à 0.


Un article intéressant sur le sujet :


Better Calendar Scripts | Qlikview Cookbook


A bientôt

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin

View solution in original post

3 Replies
christophebrault
Specialist
Specialist

Bonjour,

Dans CalendrierTemp tu utilises vMinDate alors que ta variable a été créée en : vDateMin


Le problème doit venir de là car ton calendrier commence à 0.


Un article intéressant sur le sujet :


Better Calendar Scripts | Qlikview Cookbook


A bientôt

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
adj29block
Contributor III
Contributor III

Bonjour,

Un calendrier qui fonctionne parfaitement sur QV ou QS très bien expliqué :Calendrier QlikView

Au final tu peux avoir ceci :

// Fixe en dur la sélection de MinDat et MaxDate à partir des dates de l'application

// Les dates Min et Max de l'application peuvent être différentes de la sélection avec Makedate()

LET vMinDate = Num(Makedate(2015,1,1)); // 1er janvier 2015

LET vMaxDate = Num(Makedate(2017,12,31)); // 31 décembre 2017

ChampDate:

LOAD

    date($(vMinDate)+IterNo()-1) as TempDate

    AUTOGENERATE (1)

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

Calendrier:

LOAD

    TempDate As OrderDate, // Intitulé du champ de Date dans l'Application

    Year(TempDate) As Year,

// Utiliser Quarter ci-dessous renvoi Q avec Chiffre romain, Ex: Q II

    Dual('Q ' & Num(Ceil(Num(Month(TempDate))/3),'(ROM)0'),Num(Ceil(Num(Month(TempDate))/3),'(ROM)0')) As Quarter,

    Month(TempDate) as Month,

    Dual(Year(TempDate)&'-Q'& Num(Ceil(Num(Month(TempDate))/3)),QuarterStart(TempDate)) AS YearQuarter, // Utilisation du champ Year-Quarter Ex: 2015-Q3

    Dual(Year(TempDate)&'-'& Month(TempDate), Monthstart(TempDate)) AS YearMonth,

    Dual(Month(TempDate)&'-'& Year(TempDate),MonthStart(TempDate)) As MonthYear,

    Dual(WeekYear(TempDate) & '-W' & Week(TempDate), WeekStart(TempDate)) as YearWeek, // Utilisation du champ Year-WEEK Ex: 2015-W22

//Utiliser Week ci-dessous renvoi W avec numero de Week, Ex: W 25

    Dual('W ' & Num(Week(TempDate),'00'),Num(Week(TempDate),'00')) As Week,

    Weekday(TempDate) as WeekDay,

    Day(TempDate) as Day

RESIDENT ChampDate;

DROP TABLE ChampDate;

Bonne journée

Anonymous
Not applicable
Author

Merci, c'est effectivement que je me suis tromper dans le nom des variable