Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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
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
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
Merci, c'est effectivement que je me suis tromper dans le nom des variable