WINDEV 2025
LES PROCÉDURES RÉACTIVES (DESIGN PATTERN OBSERVER) UN CONCEPT PUISSANT Les Procédures Réactives permettent de dé- clencher automatiquement l’exécution de trai- tements. Une Procédure Réactive est exécutée lors- qu’une variable ou lorsque la valeur ou le contenu d’un champ utilisé dans la procédure est modifié soit par l’utilisateur final, soit par programmation. La Procédure Réactive «observe» en perma- nence (d’où le nom anglais «Design Pattern Observer») les variables et les champs concer- nés pour détecter les changements de valeur, et dans ce cas s’exécuter automatiquement Une variable ou un champ change ? La Procé- dure est exécutée ! À QUOI ÇA SERT ? UN EXEMPLE SIMPLE Quel est l’intérêt de créer une Procédure Ré- active ? Eh bien c’est vraiment très pratique. Prenons un exemple simplissime: une saisie de montant HT ou TTC. Le fonctionnement attendu est le suivant: lorsque l’on saisit un montant dans un champ, les autres champs se mettent à jour automati- quement. Il est bien entendu possible de coder ce fonc- tionnement en WLangage, directement dans chaque champ concerné. Dans ce cas il faut créer une procédure qui ef- fectue le calcul, et placer l’appel de cette pro- cédure dans le Traitement de Modification de chacun des 3 champs. Avec une Procédure Réactive, il suffit d’écrire la formule de calcul... et c’est tout. Sur 2 ou 3 champs, c’est encore simple, mais imaginez avec 5 ou 6 champs, et les risques lors d’une modification. Et comment traiter le changement de valeur d’un des champs de saisie par programmation ? Avec une Procédure Réactive, il n’y a rien à pro- grammer, la procédure sera exécutée automati- quement: aucun oubli. AVANTAGE : LE CODE EST UNIQUE ET REGROUPÉ L’avantage principal de cette méthode est que la surveillance du changement de valeur d’un champ est déléguée au framework. Inutile de coder à chaque endroit ou à chaque champ où la modification peut intervenir. La consommation de ressources est nulle car c’est le framework qui se charge de tout, de ma- nière optimisée: c’est le champ (ou la variable) qui signale automatiquement son changement de valeur à la Procédure Réactive. Le code unique et clair de la Procédure Réac- tive permet donc de «surveiller» et de mettre à jour plusieurs champs et variables différents. COMMENT DÉCLARER UNE PROCÉDURE RÉACTIVE Le mot-clé Réactive permet d’indiquer que la procédure doit surveiller les variables et les champs utilisés dans son code. Et bien sûr de s’exécuter en cas de modifica- tion. PROCÉDURE RÉACTIVE CalculeTTC () Une Procédure Réactive peut être une procé- dure globale au projet (et donc réactive en per- manence), une procédure locale de fenêtre ou une procédure locale de champ. LES OPTIONS DE LA PROCÉ- DURE RÉACTIVE Les Procédures Réactives proposent 2 options : • Délai: s’exécuter après un délai fourni. Par exemple La procédure s’exécutera 100 millisecondes après un changement de valeur PROCÉDURE RÉACTIVE CalculeTTC () <délai = 100ms > SAI_TTC = SAI_HT + SAI_HT * ( SAI_TVA+1) / 100 • Exécution : il est possible de déclencher par programme l’exécution d’une Procé- dure Réactive. CASCADE Une Procédure Réactive peut modifier une va- riable ou un champ, eux-mêmes utilisés par une autre Procédure Réactive. Dans ce cas, l’autre Procédure Réactive s’exé- cutera. Le framework bénéficie de mécanismes de sé- curité : en cas de cycle, le framework gère ! SAVOIR QU’UN CHAMP EST SURVEILLÉ OU MODIFIÉ PAR UNE PROCÉDURE RÉACTIVE Pour savoir qu’un champ peut être modifié par une Procédure Réactive, il suffit de regarder en bas à gauche de la fenêtre des «7 onglets» du champ. • ici le picto «23» indique le nombre d’utili- sations du champ dans le code • ici le picto «7» indique le nombre d’utili- sation des Procédures Réactives. Un clic sur un picto ouvre la liste des utilisa- tions (des références croisées). UNE PROCÉDURE RÉACTIVE S’EXÉCUTE AUTOMATIQUEMENT À CHAQUE MODIFICATION D’UN CHAMP OU D’UNE VARIABLE 61 www.pcsoft.fr •
Made with FlippingBook
RkJQdWJsaXNoZXIy NDQ0OA==