Datum = /* Script librement propose par DAXONE.FR - octobre 2019. *** Pour utiliser ce script, penser à preciser date de debut et de fin (voir section variables). Date de debut et date de fin peuvent etre calculees dynamiquement à partir de la date principale ('Date1') et la fonction CALENDAR CALENDAR ( DATE ( YEAR ( MIN ( Date1 ) ) ; 1 ; 1 ); DATE ( YEAR ( MAX ( Date1 ) ) ; 12 ; 31 ) ) Dans ce cas, il convient d'ignorer la section VAR et de remplacer la fonction CALENDAR ligne 26 par les lignes ci-dessus Apres sa creation, trier la table en fonction de la colonne [Date] - question de confort. Dans l'onglet Modelisation, marquer la table comme table de date et utiliser la fonction "Trier par colonne" pour : - trier la colonne Nom du mois par la colonne Annee Mois - trier la colonne Nom court du mois par la colonne Annee Mois - trier la colonne Mois par la colonne Numero du Mois - trier la colonne Nom du jour par la colonne Numero du jour De plus, vous pouvez modifier le format du champ Date (par ex. dd/MM/yy) pour ne pas avoir les heures affichees Dans la vue Modele, lier Datum à la table des faits contenant les dates de transactions, en definissant la liaison active sur la date la plus importante et le cas echeant des liaisons inactives sur les autres dates utiles (ou dupliquez la table Datum avec la formule-type Datum2 = Datum) Enfin il est conseille de masquer les champs de type Date lies à la table Datum et de masquer les champs Numero du jour et du mois de la table Datum *** Remarque: dans l'etat actuel, les jours feries n'apparaissent pas dans ce script - à suivre */ VAR DebDate = DATE(2017;1;1) VAR FinDate = DATE(2019;12;31) RETURN ADDCOLUMNS(CALENDAR(DebDate;FinDate); "Annee"; FORMAT([Date];"YYYY"); "Trimestre" ; "T"&FORMAT([Date];"Q"); "Numero du mois"; MONTH([Date]); "Mois"; "M"&FORMAT([Date];"M"); "Annee mois"; FORMAT([Date];"YYYYMM"); "Nom du mois"; FORMAT([Date];"MMMM YY") ; "Nom court du mois"; FORMAT([Date];"MMM YY") ; "Semaine" ; "S" & FORMAT(WEEKNUM([Date];2);"00"); -- mise en place de la semaine ISO 8601 (WEEKNUM([Date];21) "Semaine ISO" ; "W" & FORMAT(WEEKNUM([Date];21);"00") ; -- mise en place de la colonne annee-semaine ISO (pour le cumul hebdomadaire) "Annee_Sem_ISO" ; VAR An = YEAR([Date]) VAR Sem = WEEKNUM([Date];2) VAR SemISO = WEEKNUM([Date];21) RETURN IF( AND (SemISO < 5; Sem > 50); An+1; IF( AND (SemISO > 50; Sem < 5); An-1; An ) ) & "-W" & FORMAT(SemISO;"00") ; "Numero du jour" ; WEEKDAY([Date];2); "Nom du jour"; FORMAT([Date];"DDDD"); "Jour ouvre" ; IF(WEEKDAY([Date];2)<6;"Ouvre";"Week-end") )