Problème de Javascript dans formulaire Acrobat Pro  (Lu 345 fois) Partager ce sujet Imprimer

1 B


Alinus33  30 juin 2020 : 20:56

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 < 35) {this.getField("FraisLivraison").value = 25;}
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



IP archivée


bebarth  30 juin 2020 : 21:37

bonjour,
Essaye comme ça :
if (this.getField("TotalBouteilles").value==0 || this.getField("TotalBouteilles").value>35) {
    this.getField("FraisLivraison").value=0;
} else {
    this.getField("FraisLivraison").value=25;
}
@+
 :bonjour:

IP archivée


Alinus33  30 juin 2020 : 21:55

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é

IP archivée


bebarth  30 juin 2020 : 22:06

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

IP archivée


Alinus33  30 juin 2020 : 22:20

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

IP archivée


bebarth  30 juin 2020 : 22:37

A mettre en script de calcul du champ "FraisLivraison" :
if (this.getField("TotalBouteilles").value==0 || this.getField("TotalBouteilles").value>35) {
    event.target.value=0;
} else {
    event.target.value=25;
}
@+
 :bonjour:

IP archivée


Alinus33  01 juillet 2020 : 07:26

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


IP archivée


bebarth  01 juillet 2020 : 08:56

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:

IP archivée


Alinus33  01 juillet 2020 : 09:26

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

IP archivée


Alinus33  01 juillet 2020 : 09:33

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...

IP archivée


bebarth  01 juillet 2020 : 09:43

Outils "Préparer le formulaire", puis "Définir l'ordre de calcul...".
@+
 :bonjour:

IP archivée


Alinus33  01 juillet 2020 : 10:10

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:

IP archivée


Merlin  01 juillet 2020 : 10:13

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:

IP archivée


Alinus33  01 juillet 2020 : 11:33

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

IP archivée


Merlin  01 juillet 2020 : 12:42


IP archivée


bebarth  01 juillet 2020 : 13:20

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:

IP archivée


Merlin  01 juillet 2020 : 13:47

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.


IP archivée


Alinus33  01 juillet 2020 : 14:17

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

IP archivée


Merlin  02 juillet 2020 : 10:57

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:

IP archivée