February 24, 2023 4:11 PM (GMT+1) - Nanastés
Mon objectif final est de pouvoir filtrer mes vues sur "période en cours" "période suivante" ou "période précédente". Donc je souhaiterai, pour chacune de mes périodes, obtenir si c'est P, P+1 ou P-1, sachant que la période P est celle qui contient now , la P-1 celle d'avant et la P+1 celle d'après. Avec un exemple : on actuellement en période 2022-P3, c est donc ma période en cours. 2022-P2 est donc P-1 et 2022-P4 est P+1 Dans ma base de données de mes objectifs, qui en relation avec mes périodes, je veux faire une vue des objectifs de ma période encours et une des objectifs de ma période précédente...
Conditions de départ : Deux bases de données Période et Objectifs sont reliées entre elles. La base Période contient les différentes périodes de temps se suivant mais ne se chevauchant pas. La base Objectifs contient des objectifs associés aux périodes. Le but est de pouvoir filtrer la vue des objectifs pour afficher ceux de la période suivante ou de la période précédente. La période en cours est déterminées par l’instant présent now(). Il y a 6 périodes différentes mais elles pourraient aller jusqu’à 18 dans le futur.
Réponse rapide
Les valeurs des périodes vont de 1 à 6 puis à nouveau de 1 à 6 etc. de manière cyclique. Lorsque tu es en P2, P- (la période précédente) est 1 et P+ (la période suivante) est 3. Mais lorsque tu es en P1, P- est 6 et P+ est 2. Il va donc falloir travailler avec mod().
Voici les formules qui donnent le numéro de la période suivante (P+) ou précédente (P-) en fonction du numéro de la période en cours (P) :
P+ (Période suivante) prop("P") % 6 + 1
P- (Période précédente) (prop("P") - 1 + 6) % 6 + if((prop("P") - 1 + 6) % 6 == 0, 6, 0)
Pour travailler sur des périodes de 12 cycles, il faut remplacer les 6 par 12 etc.
Déterminer P+ et P- va permettre d’avoir une base de travail pour créer un filtre affichant les éléments de la période suivante ou précédente.
Réponse avancée