Donnez vie à vos documents numériques !
 

Script de calcul et suppression de pages

abracadabraPDF Forums PDF – Général Script de calcul et suppression de pages

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46127
    adrith
    Participant

    Bonjour à tous,
    J’utilise des scripts de calculs (dans les champs cibles) afin de pouvoir copier le contenu des champs sources.
    De ce type :

    Code:
    event.target.value = this.getField(“P4.page5.num_euro”).value;
    ou
    event.target.value = this.getField(“P3.page4.obj”).value;

    Le souci que je rencontre et qui me bloque depuis plusieurs heures :mur:
    C’est que lorsque je valide mon formulaire sur ma 1re page, si un critère n’est pas correct alors je supprime des pages, jusque là ok, ça fonctionne.
    Mais ma console est bourrée d’erreurs, j’ai comme l’impression que les scripts de calculs essaient de se faire alors que je supprime les pages, du coup ils trouvent des champs null.
    Erreurs de ce type dans ma console :

    Code:

    this.getField(“P4.page5.num_euro”) is null
    1:AcroForm:num_euro_1:Calculate
    this.getField(“P3.page4.obj”) is null
    1:AcroForm:obj_1:Calculate

    À savoir que dans ce cas bien précis, dans les 8 pages qui sont supprimées il y a dans ces pages à la fois les champs cibles et à la fois les champs sources.
    À savoir également que lorsque je veux réinitialiser le document et rajouter les pages qui avaient été supprimés, je me retrouve de nouveau avec toutes les erreurs.

    Est-ce que j’ai oublié quelque chose ? J’ai l’impression que ces scripts de calculs s’exécutent toujours à chaque interaction dans le document, c’est ça ?
    Si oui y a t-il une solution ?  :Euuuh:
    Merci bien, bonne soirée

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

    bonjour,
    Le mieux serait de partager ton fichier pour voir exactement.
    A ce que je comprend, tu supprimes les pages où se trouvent les champs, donc le script de calcul renvoie une erreur !
    Dans se cas, il faut utiliser Try…Catch : https://www.w3schools.com/java/java_try_catch.asp
    Ce qui donnerait par exemple :

    Code:
    try {
    event.target.value = this.getField(“P4.page5.num_euro”).value;
    } catch(e) {}

    Tu ne devrais plus avoir de message d’erreur dans la console.
    @+
    :bonjour:

    #66133
    Merlin
    Maître des clés

    Bonjour.

    J’ai l’impression que ces scripts de calculs s’exécutent toujours à chaque interaction dans le document, c’est ça ?
    Si oui y a t-il une solution ?

    C’est exactement ça. Pour savoir pourquoi il faut lire cet article jusqu’à la fin : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/lordre-dexecution-des-evenements-dans-les-champs-de-formulaire-pdf/

    La solution “propre” c’est de tester l’existence du champ cible avant d’effectuer tout calcul, ainsi la Console restera silencieuse :

    Code:
    // si et seulement si le champ “P4.page5.num_euro” existe, alors la valeur du champ qui calcule devient égale à celle du champ “P4.page5.num_euro”
    if (this.getField(“P4.page5.num_euro”) != null) {event.target.value = this.getField(“P4.page5.num_euro”).value;}
    // autrement il ne se passe rien

    :Smiley15:

    #66134
    Merlin
    Maître des clés

    PS : la solution de bebarth revient au même.
    :geek:

    #66135
    adrith
    Participant

    Merci beaucoup pour vos retours à tous les 2  :bravo:

    Le try/catch ne m’a pas masqué mes erreurs par contre le if != null, c’est parfait.

    Merci encore
    A bientôt

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