J’essaie de symboliser une carte en fonction du temps écoulé entre un champ « DATE_ISSUE » et aujourd’hui (c.-à-d. Today()), de sorte que si le point date de moins de 6 mois, il soit « actif » ; s’il date de plus d’un an, il soit « expiré » ; s’il date de 6 mois à un an, il soit « ancien » ; et si aucune date n’a été saisie dans « DATE_ISSUE », il soit « en attente »
J’ai un jeu d’essai de 67 points. Pour 24 d’entre eux, aucune date n’a été attribuée ; 1 point date du 8 décembre 2016 (518 jours), 1 du 8 septembre 2017 (244 jours), 1 du 12 mai 2017 (363 jours) et les autres datent de janvier 2018 ou d’une date ultérieure.
Voici ce que j’ai jusqu’à présent :
var pDate = Date(Today());
var rDate = Date($feature["DATE_ISSUE"]);
var age = DateDiff(pDate, rDate, 'days');
if (age < 182.5){
"ACTIF"
}
else if(age >= 182.5 && age <355){
"ANCIEN"
}
else if (age >= 365 && age < 10000){
"EXPIRÉ"
}
else if (age > 10000){
"EN ATTENTE"
}
Cette dernière clause else if vient du fait qu’un champ « DATE_ISSUE » vide est calculé par la fonction DateDiff comme ayant la valeur 17 661,33.
J’obtiens 40 points « actifs », 24 « en attente », et les trois objets datant de plus de 182,5 jours ont tout simplement disparu. Littéralement. Ma table attributaire affiche bien les 67 points. Dans mes options de symbologie, le total affiché est de 64 points, et la catégorie « autre » en compte 0. Quand je coche « autre », les 3 points apparaissent, même si le nombre indiqué est 0.
Lorsque je vérifie la fonction DateDiff, aucune valeur supérieure à 126 jours n’est générée, à l’exception de la valeur de 17 661,33 mentionnée précédemment.
Je cherche simplement un moyen de repérer visuellement les points expirés ou anciens, afin que le personnel du bureau n’ait pas à les rechercher.