Donnez vie à vos documents numériques !
 

Répondre à : Script dans modèle de page. – RÉPONDU

abracadabraPDF Forums PDF – Général Script dans modèle de page. – RÉPONDU Répondre à : Script dans modèle de page. – RÉPONDU

#54640
Merlin
Maître des clés

– transfert d’activité: pour ouvrir des champs supplémentaire s’ouvre

C’est un vrai casse-tête auquel tu te heurtes, JavaScript et les champs de formulaires PDF offrent des possibilités fantastiques mais là on est en plein sur le revers de la médaille…

Tout ce qui suit vaut pour les bouton-radios (BT) et pour les cases-à-cocher (CC) :

Au moment de la création d’un BT ou d’un CC il est ajouté automatiquement à son nom un numéro d’incrémentation qui permet de l’identifier et de l’utiliser via JavaScript.
CheckBox#0, CheckBox#1, CheckBox#2, etc.
Cette numérotation commence à zéro.

Malheureusement ce numéro d’incrémentation ne correspond pas du tout au numéro de suffixe du nom du même champ dans la palette des champs de l’éditeur JavaScript : CheckBox.1, CheckBox.2, CheckBox.3, etc.
Cette numérotation commence à 1, mais ce n’est pas la seule raison.

Toute modification, duplication, copier-coller, etc. d’un nom de BT/CC provoque automatiquement son incrémentation, donc après quelques manipulations on se retrouve vite avec des numéros qui ne correspondent plus.

Et c’est ça le problème : il n’y a aucun moyen de connaître ce numéro via l’interface d’Acrobat. Tout ce qu’on sait c’est que le premier BT/CC créé aura le numéro #0, que le deuxième aura le numéro #1, #2, etc.
Et puis c’est tout.

Et c’est très certainement ce qui t’arrive, sur ton formulaire j’ai re-créé 4 CC (je préfère ça aux BT parce-qu’on peut les décocher) à partir de zéro et le script fonctionne très bien.

J’ai utilisé ce script trouvé dans la doc pour tester, il me dit bien que le BT #3 n’est pas coché, alors que le BT “transfert d’activité” est coché, alors que ça devrait être le même.
Donc le BT “transfert d’activité” porte un autre numéro.

var f = this.getField(“choice”);
var cbStatus = (f.isBoxChecked(3)) ? ” ” : ” not “;
app.alert(“The box is” + cbStatus + “checked”);

(A copier-coller dans la Console)

Le seul moyen de connaitre le numéro d’incrémentation c’est donc soit de procéder par élimination avec ce script, soit de bien faire attention à l’ordre dans lequel on crée les BT/CC et de bien s’en souvenir par la suite.
Et surtout, ne pas oublier que chaque copier-coller, dupliquer, etc. remet en cause cette numérotation “invisible” et qu’il re-tester tous les scripts à chaque fois.

Voilà, voilà…
:mur: :oh: :geek:

– avis et validation : cocher favorable pour ouvrir le second volet de validation

Ce bouton fait appel à plusieurs ligne de scripts dont la dernière est :

Initialisation();
Ligne probablement héritée d’un copier-coller depuis une fonction et qui n’a rien à faire là, ne serait-ce que parce qu’elle génère des erreurs (voir Console).
Je t’avais déjà mis en garde contre cette ligne de script inutile.
:siffle:

Pour le reste : même problème que ci-dessus.
:joker: