abracadabraPDF › Forums › PDF – Général › Exécution de fonction par bouton › Répondre à : Exécution de fonction par bouton
6 mai 2024 à 10:16
#74176

Maître des clés
Bonjour
Souvent la bonne réponse vient de l’abandon de la mauvaise question.
Tes scripts tiennent la route, je crois que ce sont les déclencheurs qui posent problème :
- Les champs R.1.n et R.2.n déclenchent deux fois la fonction “Defaut”, en script de format et en script de touche. À mon avis c’est une fois de trop.
Et si je comprend bien cette fonction je la verrais mieux en script de Validation.
- L’évènement “Calcul” se déclenche pour tous les champs à chaque fois qu’un seul champ est désactivé, donc la fonction “EditReps ” est déclenchée par tous les champs à chaque fois qu’un seul d’entre eux est utilisé. Par ailleurs ça oblige à gérer l’ordre de calcul (qui ne me parait pas logique dans ce document).
Donc je crois que cette fonction serait mieux placée si elle était en script de Validation, ainsi elle ne serait déclenchée que par le champ actif, et donc une seule fois.
Tu peux utiliser des scripts pour déplacer l’appel des fonctions dans les champs, tu n’es pas obligé de tous les reprendre à la main un par un.
Par exemple pour les 18 champs Question.1.n :
for (var i = 0; i < 19; i++) {
// suppression du script de calcul
this.getField("Question.1."+i).setAction("Calculate", "");
// ajout en script de validation
this.getField("Question.1."+i).setAction("Validate", "EditReps();");
}