Le service qui évalue les dates des évènements récurrents fonctionne parfaitement.
Pour le moment il est utilisé lors d'un clic sur une cellule du calendrier ou lors d'un changement de dossier, ces deux actions déclenchant une mise à jour de la liste des evènements. Le service étant implémenté au niveau de l'unité et non de la fenêtre, il sera réutilisable pour gérer les Alarmes même sans avoir le Calendrier ouvert.
Sa mise au point a été un exercice intéressant. XT4 autorisant les périodicités complexes (par exemple : 1 jour sur 10), il n'était pas possible de simplement vérifier si la date passée en paramètre était conforme à la règle de récurrence de l'évènement.
La méthode utilisée consiste donc à "jouer" la règle pour de vrai :
- Définition de la date de la première occurrence. Elle vaut la date de début de l'évènement pour les modes quotidien et hebdomadaire, et est calculée pour les modes mensuel et annuel comme étant la première occurrence possible après la date de début.
- Incrément de cette date selon la régle définie et comparaison avec la date passée en paramètre. En mode hebdomadaire, l'incrément se fait par 1 jour ou par N semaines. Ce mode qui est le plus complexe a un second contrôle portant sur le jour de semaine.
- Sortie de la boucle si la date de test correspond à la date à vérifier, ou si la date de fin est dépassée (s'il n'a pas de date de fin, c'est celle de l'application qui est utilisée : le 31/12/2299).