Ik probeer een kaart te symboliseren op basis van de tijd die is verstreken sinds een veld "DATE_ISSUE" tot vandaag (oftewel: Today()), waarbij een punt "actief" is als het minder dan 6 maanden oud is, "verlopen" als het meer dan een jaar oud is, "oud" als het tussen 6 maanden en een jaar oud is, en "in behandeling" als er geen datum is ingevuld bij "DATE_ISSUE"
Ik heb een testrecord met 67 punten. Bij 24 is geen datum van uitgifte ingevuld, 1 punt dateert van 8 december 2016 (518 dagen oud), 1 van 8 september 2017 (244 dagen oud), 1 van 12 mei 2017 (363 dagen oud) en de rest dateert van januari 2018 of later.
Dit heb ik tot nu toe:
var pDate = Date(Today());
var rDate = Date($feature["DATE_ISSUE"]);
var age = DateDiff(pDate, rDate, 'days');
if (age < 182.5){
"ACTIEF"
}
else if(age >= 182.5 && age <355){
"OUD"
}
else if (age >= 365 && age < 10000){
"VERLOPEN"
}
else if (age > 10000){
"IN BEHANDELING"
}
Deze laatste else if-clausule is het gevolg van een bankveld "DATE_ISSUE" dat in de functie DateDiff als 17.661,33 wordt berekend.
Dit levert 40 "Actief", 24 "In behandeling" op, en de drie objecten die meer dan 182,5 dagen oud zijn, zijn gewoon verdwenen. Echt waar. In mijn attributentabel staan ze alle 67. Bij mijn symboliseringsopties staat een totaal van 64 punten en 0 bij "overige". Als ik "overige" aanvink, verschijnen de 3 punten, hoewel het aantal 0 is.
Als ik de functie DateDiff controleer, worden er geen waarden van meer dan 126 dagen gegenereerd, met uitzondering van de eerder genoemde 17.661,33.
Ik wil verlopen of oude punten alleen visueel markeren, zodat het kantoorpersoneel ze niet hoeft op te zoeken