abracadabraPDF › Forums › PDF – Général › Problème avec des boucles for › Répondre à : Problème avec des boucles for
Bonjour et bonne année
Ces boucles utilisent une variable nommée “i”.
Tous les champs “diff.n” utilisent chacun un script de calcul qui utilise aussi une variable nommée “i”.
Un script de calcul se déclenche à chaque fois qu’un champ du document passe par l’état “désactivé”, que l’action vienne d’un humain ou d’un script.
Ce qui a deux conséquences :
- la variable “i” des boucles est immédiatement interceptée et modifié par le premier calcul déclenché, c’est ce qu’on appelle une collision de variables et c’est pour ça que les boucles ne fonctionnent que sur la première itération.
- à chaque fois qu’un champ est modifié cela déclenche les 52 calculs des champs “diff.n” (et il y a peut être d’autres calculs ailleurs, je n’ai pas vérifié).
Donc quand on boucle sur 52 champs cela fait 52 x 52 calculs à effectuer : c’est pour ça que ça rame.
Ci-joint, j’ai remplacé “i” par “t” dans les boucles de remplissage et de reset. Dans la mesure où le remplissage et le reset des champs n’est effectué qu’une fois (ou deux) par l’utilisateur on peut considérer le temps de latence comme acceptable. Sinon il faudrait “pousser” les valeurs depuis chaque menu déroulant correspondant, au lieu de les “tirer” avec un calcul.
J’ai aussi ajouté une protection qui empêche les script de s’arrêter si un champ n’existe pas.