Donnez vie à vos documents numériques !
 

Script dans modèle de page. – RÉPONDU

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

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44439
    jsamica
    Membre

    Bonjour,

    Après plusieurs posts sur ce thème j’ai encore des incompréhensions.
    En effet aprés avoir réglé le problème des préfixes.

    Je m’aperçois que les scripts js ne sont pas forcement bien pris en compte.
    J’ai supprimé les préfixes dans l’ouverture du modèle, cependant pas exemple sur une case à cocher qui affiche des champs, rien ne s’affiche…

    Quelqu’un pourrai m’éclairer svp ?

    Merci

Affichage de 4 réponses de 1 à 4 (sur un total de 4)
  • Auteur
    Réponses
  • #54638
    Merlin
    Maître des clés

    As tu un (petit bout d’) exemple ?

    #54639
    jsamica
    Membre

    Voici,
    dsl pour l’exemple, j’ai repris mon doc original en supprimant les champs.

    Dans l’exemple pour tester il faut normalement cocher:
    – transfert d’activité: pour ouvrir des champs supplémentaire s’ouvre
    – avis et validation : cocher favorable pour ouvrir le second volet de validation

    dans ce cas si j’ouvre le template cela fonctionne, si j’ouvre un form généré du template ça ne marche pas.

    Pour rappel, j’ai enlevé la génération du préfixe…

    Merci
    :Smiley03:

    PS: merci me le signaler si le document ne respecte pas un minimum de confidentialité

    [attachment deleted by admin]

    #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:

    #54641
    jsamica
    Membre

    Bonjour à tous, bonjour Merlin,
    Merci pour ces explications, effectivement c’est bon à savoir ces problèmes de fonctionnement !

    Me m’engueule pas  :Ooops: pour les scripts tu sais bien que je suis mauvais en dev…  :geek:

    Je vais revoir tout ça alors.

    Merci
    Bonne journée.
    :Smiley03:

Affichage de 4 réponses de 1 à 4 (sur un total de 4)
  • Vous devez être connecté pour répondre à ce sujet.