Donnez vie à vos documents numériques !
 

Problème de Javascript dans formulaire Acrobat Pro

abracadabraPDF Forums PDF – Général Problème de Javascript dans formulaire Acrobat Pro

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46370
    Alinus33
    Membre

    Bonjour à tous les membres de la communauté,
    Je suis en train de taper mon premier message, après avoir parcouru le web depuis 1 jour et demi, en essayant de comprendre ce qui ne va pas dans le script de calcul que j’ai affecté à un champ d’un bon de commande, réalisé à partir d’un formulaire Acrobat Pro.Si je suis pas trop mauvais sur une bécane, en bureautique et sous ToShop, je tente de me familiariser depuis deux jours au JavaScript Adobe. J’arrive à certains résultats, mais dire que je tâtonne est un doux euphémisme…
    Voici mon problème.J’essaie d’affecter des frais de port variables ai champ qui va bien. A partir de 36 bouteilles (oui  :Ooops: , il s’agit d’un bon de commande de vin..), la livraison s’effectuera en franco.
    Dans ma zone Javascript, j’ai tapé :
    var TotGenBout = this.getField(“TotalBouteilles”).value;
    if(TotGenBout.value = 0){this.getField(“FraisLivraison”).value = 0;}
    if(TotGenBout.value > 35) {this.getField(“FraisLivraison”).value = 0;}
    if(TotGenBout.value Mais rien ne marche… zn changeant quelques trucs, je suis arrivé à avoir des résultats… au succès variable… et assez aléatoires… jamais le même pour des quantités identiques…Je pense qu’il doit y avoir la réponse dans les sujets déjà traités et que mon problème est très simple, mais je suis un archi archi débutant et il faut que je trouve la réponse avant demain midi.
    Aussi, si l’un d’entre vous avait la gentillesse de m’aider, ce serait très sympa.Merci, mille fois, par avanceAlain

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

    bonjour,
    Essaye comme ça :

    Code:
    if (this.getField(“TotalBouteilles”).value==0 || this.getField(“TotalBouteilles”).value>35) {
        this.getField(“FraisLivraison”).value=0;
    } else {
        this.getField(“FraisLivraison”).value=25;
    }

    @+
    :bonjour:

    #67851
    Alinus33
    Membre

    Bonsoir bebarth,
    Merci de ta réponse rapide. Malheureusement, j’ai toujours le souci…
    Par exemple, pour une valeur de 36 bouteilles, je ne suis pas en franco de port. Toujours les 25 €.Désolé

    #67852
    bebarth
    Maître des clés

    peux-tu partager un fichier ?
    @+
    :bonjour:

    #67853
    Alinus33
    Membre

    bebarth,
    Compliqué pour moi de partager… les noms de la liste des vins feront sauter le côté “John Doe” de mon souci.Tu souhaiterais prendre connaissance de quels éléments, afin de voir si je peux isoler.
    MerciAlain

    #67854
    bebarth
    Maître des clés

    A mettre en script de calcul du champ “FraisLivraison” :

    Code:
    if (this.getField(“TotalBouteilles”).value==0 || this.getField(“TotalBouteilles”).value>35) {
        event.target.value=0;
    } else {
        event.target.value=25;
    }

    @+
    :bonjour:

    #67855
    Alinus33
    Membre

    Cher bebarth,
    Merci de ton opiniâtreté. J’ai toujours le même souci depuis le début, en réalité.Quand je teste :
    33 nouteilles : c’est OK (frais de 25€)36 nout > toujours 25€ (alors que je suis à la limite d’entrée du franco de port)39 bouteilles > port = 0  (donc c’est bon)si je reteste en arrière ;36 bouteilles : 0 € (résultat différent du premier test)33 bout > 0 € (!!)30 bouteilles ! 25 € (c’est bon, mais aléatoire)le calcul du nombre total de bouteilles s’effectue sans faute, mais le code renvoie des résultats aléatoires, différent à chaque boucle de test….

    Svp, si vous avez une idée,Merci à tous :-)

    #67856
    bebarth
    Maître des clés

    bonjour,
    Ça va être compliqué de trouver sans voir le fichier… il suffit de pas grand chose pour que ça ne fonctionne pas !
    Essaye de regarder l’ordre de calcul des champ…
    @+
    :bonjour:

    #67857
    Alinus33
    Membre

    Cher bebarth,
    En l’occurence, pour le calcul de la valeur du port, il s’agit simplement d’une condition qui déclenche deux valeurs possibles. Donc, je pense qu’au niveau de l’ordre, si le nombre de bouteilles total est bon, je veux dire s’incrémente bien. à chaque changement de quantité, cela devrait aller …. non ?

    Je me rends compte, avec horreur :-); que j’ai des formats de nombre différents (des points pour les décimales dans les prix unitaires, des virgules dans les sous-totaux par vin… je vais corriger, mais je crois que cela ne devrait pas affecter le calcul du port.
    Partager avec toi, le fichier, n’est pas un souci, mais pas avec le monde entier :-), je cherche la manip’ syur le forum…
    Merci, bebarth,Alain

    #67858
    Alinus33
    Membre

    bebarth,
    Merdum ! Je crois que j’ai compris ce que tu voulais me dire !En réalité, il faut que le calcul du nombre de bouteilles, s’effectue et affiche son résultat, avant que le calcul du port ne s’effectue !! cela doit être cela, je pense….
    Mais comment, je peux décider de cet ordre ?Merci merci , je crois que nus approchons…

    #67859
    bebarth
    Maître des clés

    Outils “Préparer le formulaire”, puis “Définir l’ordre de calcul…”.
    @+
    :bonjour:

    #67860
    Alinus33
    Membre

    Cher bebarth,
    C’était pile cela…. Je viens de découvrir un truc essentiel, qui entachait tous mes essais de progresser vite.. cela change la vie…
    Merci mille fois,
    Chaleureusement,Alain :bonjour: :bonjour:

    #67861
    Merlin
    Maître des clés

    Partager avec toi, le fichier, n’est pas un souci, mais pas avec le monde entier :-), je cherche la manip’ syur le forum…

    Acrobat Pro DC : menu Fichier : Partager
    :Smiley15:

    #67862
    Alinus33
    Membre

    Merlin,
    Merci à toi de cette information précieuse !
    Tous les deux, hormis ce forum génial et les aides spécifiques d’Adobe, quel livre, style “pour les Nuls” me serait le plus utile pour apprendre à coder ces formulaires Acrobat Pro ?Merci de votre conseil,Alain

    #67863
    Merlin
    Maître des clés
    #67864
    bebarth
    Maître des clés

    Perso, j’ai acheté 2 livres :
    All About PDF Stamps In Acrobat
    et
    Extending Acrobat Forms with JavaScript
    que je n’ai du ouvrir que le jour où je les ai reçu…
    Par contre, je me sers de l’API Reference pratiquement tout le temps, et j’ai du lire les parties concernant le doc, les signets, les commentaires et les champs je ne sais combien de fois, et dans tous les sens.
    Pour le JavaScript je vais sur ces sites :
    https://www.w3schools.com/jsref/default.asp
    et
    https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/Expressions_et_Op%C3%A9rateurs
    J’ai également trouvé sur internet quelques documents concernant les expressions régulières (ça aide !!!).
    Et puis, y a pas ! Faut pratiquer…
    @+
    :bonjour:

    #67865
    Merlin
    Maître des clés

    Laurent Tournier a récemment mis à jour sa “bible” que j’utilise depuis plus de 10 ans : GREP et InDesign. Rechercher, remplacer et formater en un clic.
    http://indigrep.com/

    Le GREP est le même partout et la particularité de ce livre par rapport à tout ce qu’on peut trouver ailleurs sur le GREP c’est qu’il aborde les particularités des regex de remplacement (parce-qu’InDesign est équipé d’un “Rechercher-Remplacer GREP”).
    Ce qui est très utile aussi en JavaScript.

    00_PdT.jpg

    #67866
    Alinus33
    Membre

    bebarth et Merlin,
    Merci, à vous deux, pour ce duo de conseils plus qu’avisés.Je vais me lancer là-dedans et, oui, pratiquer le plus possible,Merci, je reviendrai sur ce forum avec des questions dont la solution soit moins évidente que cette question d’ordre de calcul des champs
    :bonjour: :bonjour: Alain

    #67867
    Merlin
    Maître des clés

    Si tu regardes le nombre de fois où l’ordre de calcul a été abordé dans ce forum, ça en fait quelque chose de pas vraiment évident.  :geek:

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