Problème avec une formule  (Lu 273 fois) Partager ce sujet Imprimer

1 B


Pretre  21 mai 2021 : 09:37

Bonjour à tous,


je me présenterais plus tard si il y a un forum dédié pour cela. Je viens vers vous pour une demande d'aide.


J'ai cette formule dans mon PDF pour permettre des additions entre différentes cases et un total sur la dernière :



var a = Number(this.getField("AcroAb").value);
var b = Number(this.getField("AcroRa").value);
var c = Number(this.getField("AcroOth").value);


if(b == 0){
    event.value = 0;
    }
else{
    event.value = a + b + c;
    }


---------------------------


Or l'addition se fait bien, sauf si je met une valeur de 0 dans une des cases. Dans ce cas là mon total devient 0. Je n'arrive pas à voir ce qui ne va pas dans le code. Pour information, ce n'est pas moi qui l'ai codé, je l'ai trouvé sur une document déjà conçu et employé dans le mien. Quelqu'un peut il me donner un coup de main ?

IP archivée


Merlin  21 mai 2021 : 09:48

Bonjour et bienvenue

Tu peux te présenter si tu veux mais il n'y a pas de rubrique dédiée, partant du principe que c'est un forum "technique" et qu'on n'y vient pas pour raconter sa vie. Contrairement à d'autres forums plus "relationnels".  :geek:

Où est placé ce script ?
A priori il devrait fonctionner mais seulement s'il est placé en script de validation. Est-ce le cas ?
Peux tu partager ton document ? (Voir : https://abracadabrapdf.net/forum/index.php/topic,2974.0.html)

IP archivée


Pretre  21 mai 2021 : 11:02

Rebonjour,


déjà merci pour la réponse.
Je vous mets le lien du document car il est trop lourd pour être placé en pièce jointe :


http://pretreart.free.fr/jdr/MnM/MM3_FdP_edit.pdf


Les calculs sont sur la page 2 dans la partie Compétence.

IP archivée


Pretre  21 mai 2021 : 11:08

Après plusieurs essai, j'ai l'impression que c'est quand le 0 est mis en valeur b que ca créait le bug.

IP archivée


Merlin  21 mai 2021 : 16:40

 :Smiley01:
Ce n'est pas un bug, c'est une conséquence logique et attendue.
Traduction :

if (b == 0) {  // si la valeur de b est égale à zéro
    event.value = 0; // la valeur résultante devient zéro
}
else {  // sinon (si la valeur de b est différente de zéro)
    event.value = a + b + c; // la valeur résultante devient la somme de a+b+c
}



Pour un calcul sans condition on peut utiliser les fonctions de calcul d'Acrobat, ou la notation simplifiée :
AcroAb + AcroRa + AcroOth

Ou le JavaScript :
var a = Number(this.getField("AcroAb").value);
var b = Number(this.getField("AcroRa").value);
var c = Number(this.getField("AcroOth").value);
event.value = a + b + c;

IP archivée


Pretre  22 mai 2021 : 00:35

Ok donc le problème venait de là, j'aurais du le voir. En fait c'est le a qui devrait ramener à 0 et non le b. Merci en tout cas pour l'aide apportée :)

IP archivée


alexsunny123  03 septembre 2021 : 13:40

Thanks for awesome information.

IP archivée