abracadabraPDF › Forums › PDF – Général › Calcul si conditions
- Ce sujet est vide.
-
CréateurSujet
-
7 août 2019 à 13:22 #46114
GClaire
MembreBonjour à vous.
Étant nouveau, j’ai bien cherché un endroit où il fallait se présenter comme sur d’autres forums, mais je n’ai rien trouvé.
Je cherche donc à faire un calcul dans un champ de texte si la valeur de celui-ci n’est pas négative ou = à 0
J’ai tenté déjà la condition si pas négative, mais le script ne fonctionne pas, j’ai du faire une erreur.
if(this.getField(“undefined_17”).value – this.getField(“TD0602-2”).value<0) this.getField("1_8").value =this.getField("undefined_17").value - this.getField("TD0602-2") ;
else
this.getField(“1_8″).value =””;Ou ai-je pu faire une erreur ?
En fait ce que je voudrais faire c’est :
Si Undefined_16 est strictement supérieur à TD0602-2 que cela fasse le calcul
this.getField(“undefined_17”).value – this.getField(“TD0602-2”)
Sinon que cela indique rien
Merci par avance.
Cordialement, G’Claire
-
CréateurSujet
-
AuteurRéponses
-
7 août 2019 à 13:52 #66048
GClaire
MembreRe
j’ai tenté cela, mais avec une erreur 3, erreur de syntaxe.
if(this.getField(“TD0602-2”)>this.getField(“undefined_17”).value);
this.getField(“1_8”).value=this.getField(“TD0602-2”)-this.getField(“undefined_17”).value;
else
this.getField(“1_8″).value =””;Merci, G’Claire
7 août 2019 à 15:31 #66049bebarth
Maître des clésbonjour,
Si j’ai bien compris, il faut écrire :Code:if (this.getField(“Undefined_16”).value > this.getField(“TD0602-2”).value) {
this.getField(“1_8”).value = this.getField(“undefined_17”).value – this.getField(“TD0602-2”).value;
} else {
this.getField(“1_8″).value =””;
}@+
:bonjour:7 août 2019 à 17:50 #66050GClaire
MembreHello Bebarth
Merci pour ta réponse.
Malheureusement cela n’affiche rien dans le control.
Je joins le fichier, on ne sait jamais…
Merci, beaucoup
G’Claire
7 août 2019 à 20:01 #66051bebarth
Maître des clésbonsoir,
Il faut respecter les majuscules… “undefined_16” n’est pas la même chose que “Undefined_16”.Code:if (this.getField(“undefined_16”).value > this.getField(“TD0602-2”).value) {
event.target.value = this.getField(“undefined_17”).value – this.getField(“TD0602-2”).value;
} else {
event.target.value = “”;
}@+
:bonjour:8 août 2019 à 02:48 #66052GClaire
MembreBebart
Merci beaucoup, fichier modifié, c’est Ok.
Je me met depuis peu à JavaScript pour Adobe Acrobat, une belle subtilité le respect des majuscules, j’aurais pu chercher longtemps .
Merci, bonne journée.
G’Claire
8 août 2019 à 04:21 #66053GClaire
MembreRe
Je me confronte a un autre petit soucis.
Je souhaite que si TVANETDU_2_8 est vide, que le champ 3_2 soit vide, sinon le remplir en effectuant le calcul de la variable Var_TotPayer
Quand je fais ok dans l’éditeur cela fonctionne mais si je reviens dans le formulaire pour test, et bien KO.
cela fait l’inverse
j’ai donc mis dans mon champ :
Code:Var_TotPayer = this.getField(“TVANETDU_2_8”).value + this.getField(“TaxesAss2_9”).value – this.getField(“A_B”).valueif (this.getField(“TVANETDU_2_8”).value = “”)
{
event.target.value = “”;
}
else
{
event.target.value = Var_TotPayer;
}Ou ai-je pu faire une erreur?
Merci pour votre aide.
Cordialement, G’Claire
8 août 2019 à 04:36 #66054bebarth
Maître des clésbonjour,
Essaie avec :Code:var Var_TotPayer = …et
Code:event.target.value == “”;
@+
:bonjour:8 août 2019 à 05:32 #66055GClaire
MembreBonjour Le fofo, Bebarth
Merci pour ta réponse rapide.
Oui j’avais zappé la variable var, j’ai changé ma deuxième erreur, mais rien y fait.
C’est pourtant un truc simple a faire, mais je bute.
Merci, G’Claire
9 août 2019 à 17:25 #66056GClaire
MembreHello.
J’ai beau tourner le code dans tous les sens, je ne vois pas ce qui fait que cela ne fonctionne pas.
Surtout que j’ai juste à ouvrir et fermer la fenêtre où l’on met le script pour que cela se fasse correctement.Code:var Var_TotPayer = this.getField(“TVANETDU_2_8”).value + this.getField(“TaxesAss2_9”).value – this.getField(“A_B”).value
;
if (this.getField(“TVANETDU_2_8”).value = “”)
{
event.target.value == “”;
}
else
{
event.target.value = Var_TotPayer;
}Si vous avez une idée.
Merci.
Cordialement G’Claire
9 août 2019 à 21:41 #66057bebarth
Maître des clésje regarde plus tard, mais ce serait plutôt :
Code:…
If (…value == ““) {
event.target.value = ““
} else {
…== est actuellement égal à
= devient égal à
@+
:bonjour:11 août 2019 à 09:06 #66058Merlin
Maître des clésBonjour et bienvenue.
Étant nouveau, j’ai bien cherché un endroit où il fallait se présenter comme sur d’autres forums, mais je n’ai rien trouvé.
Cette rubrique n’existe pas dans ce forum, parce-que l’expérience démontre que tu es l’exception qui confirme la règle : en général la plupart des utilisateurs ignorent cette étape.
En même temps c’est “normal” : on n’est pas sur un forum relationnel, on vient ici pour des raisons techniques et on n’y parle que de techniques.:Smiley15:
11 août 2019 à 09:55 #66059GClaire
MembreBonjour et bienvenue.
Cette rubrique n’existe pas dans ce forum, parce-que l’expérience démontre que tu es l’exception qui confirme la règle : en général la plupart des utilisateurs ignorent cette étape.
En même temps c’est “normal” : on n’est pas sur un forum relationnel, on vient ici pour des raisons techniques et on n’y parle que de techniques.:Smiley15:
Hello
Ok, car je suis sur de nombreux forum, même technique, si tu te présentes pas c’est la guillotine, lol.
Merci, bonne fin de week.
G’Claire
11 août 2019 à 09:59 #66060GClaire
Membreje regarde plus tard, mais ce serait plutôt :
Code:…
If (…value == ““) {
event.target.value = ““
} else {
…== est actuellement égal à
= devient égal à
@+
:bonjour:Merci pour ta réponse dominicale, lol.
je viens de tester, idem.
Je ne comprend pas, même si je ne suis pas a fond JS, cela devrait fonctionner.
Merci, G’Claire
11 août 2019 à 13:41 #66061Merlin
Maître des clésSi vous avez une idée.
Essaye ça :
if (this.getField(“TVANETDU_2_8”).value == “”)
{
event.target.value = “”;
}else
{
event.target.value = this.getField(“TVANETDU_2_8”).value + this.getField(“TaxesAss2_9”).value – this.getField(“A_B”).value;
}Par ailleurs il me semble qu’il ne faut pas que le nom d’une variable commence par “var…”…
À éviter par prudence.11 août 2019 à 15:15 #66062bebarth
Maître des clésAs-tu essayé le fichier que je t’avais joins ??? Ça fonctionne !!!
Il faut revoir les ordres de tabulation et les ordres de calcul des champs.
Voici un nouveau fichier où j’ai juste changé l’ordre de calcul des 2 derniers champs. Je n’ai pas tout vérifié…
@+
:bonjour:12 août 2019 à 05:49 #66063GClaire
MembreEssaye ça :
if (this.getField(“TVANETDU_2_8”).value == “”)
{
event.target.value = “”;
}else
{
event.target.value = this.getField(“TVANETDU_2_8”).value + this.getField(“TaxesAss2_9”).value – this.getField(“A_B”).value;
}Par ailleurs il me semble qu’il ne faut pas que le nom d’une variable commence par “var…”…
À éviter par prudence.Hello Merlin.
Merci pour ta réponse.
J’ai testé après ton conseil, en supprimant le “var_” dans le nom de la variable, rien y change, zut….
Et j’ai changé avec ton code.
même constat.
Merci.
G’Claire
12 août 2019 à 05:58 #66064GClaire
MembreAs-tu essayé le fichier que je t’avais joins ??? Ça fonctionne !!!
Il faut revoir les ordres de tabulation et les ordres de calcul des champs.
Voici un nouveau fichier où j’ai juste changé l’ordre de calcul des 2 derniers champs. Je n’ai pas tout vérifié…
@+
:bonjour:Hello Bebart
Oui j’avais testé ton fichier, c’est la moindre des choses je pense, hihi.
Bon a priori c’est OK, sur ton dernier fichier.
Je refais quelques tests, pour ensuite mettre le post en résolu.
Merci a tous pour votre aide.
G’Claire
16 août 2019 à 07:20 #66065GClaire
MembreHello la communauté.
Désolé de ne pas avoir donné de nouvelles avant, mais un imprévu (hospitalisation de mon fils), a fait que je n’étais trop dispo et je profite qu’il dorme pour vous répondre.
Donc tout fonctionne très bien.
Le truc que je ne comprend pas trop, c’est l’histoire de l’ordre de calcul.
Si on passe par un script, ça n’est pas le code qui prime sur l’ordre dès champs?
Merci, G’Claire.
16 août 2019 à 08:08 #66066bebarth
Maître des clésbonjour et bon rétablissement pour ton fils !
Il y a 2 choses différentes qui sont l’ordre de tabulation et l’ordre de calcul des champs.
Si tu as 2 champs A et B qui sont eux-mêmes des résultats de calculs et que le champ C et la somme de A + B, si tu commences à calculer le champ C avant les 2 autres, il risque d’y avoir une erreur non pas de calcul, mais sur le résultat escompté !
@+
:bonjour:17 août 2019 à 11:44 #66067GClaire
MembreLe fofo, Bebarth.
Merci pour mon fils.
Ok, oui je comprend, c’est logique.
Je vais regarder cela mieux.
Merci, pour le coup de pouce.
G’Claire
2 octobre 2019 à 13:32 #66068masemrom
MembreBonjour, je suis nouveau et utilise dans un cadre professionnel acrobat pro dc.J’ai une date limite de rendu de formulaire avec calculateur très courte.Mon problème est le suivant.J’édite un formulaire avec 2 boutons radio pour chaque case tarif.le premier une fois coché affiche sur le formulaire le tarifle deuxieme une fois coché masque ce même tarif.Ceci avec plusieurs tarifs différents.Le but étant que lorsque le tarifs est affiché il se calcul dans la case TOTAL, et ainsi s’additionne avec tous les tarifs sélectionnés, en revanche lorsqu’il n’est pas sélectionné, il ne doit pas s’afficher dans total et donc ne pas s’additionner avec les autres tarifs.Jusqu’à présent j’ai essayé avec les actions ou en javascript et rien y fait mon tarif reste actif dans le total.Svp quelqu’un à t’il une piste pour m’aiderCordialement
2 octobre 2019 à 15:04 #66069bebarth
Maître des clésbonjour,
Ou est le champ TOTAL ??? il faut le créer ?
Il ne suffit pas de voir ou cacher un champ pour tenir compte ou ignorer sont contenu !!!
Il y a un peu tout à revoir dans ton formulaire…
Je t’ai fait la première ligne !
@+
:bonjour:2 octobre 2019 à 20:01 #66070Merlin
Maître des clésBonjour et bienvenue le nouveau (nous avons donc deux nouveaux et deux anciens dans ce sujet :Smiley03: )
Il n’y a pas besoin de JavaScript dans ton cas :
– Oublie les jeux de deux boutons-radio et utilise une seule case à cocher à la place.
– Affecte à chaque case à cocher le montant du tarif correspondant comme “valeur d’exportation”.
– Dans le champ total il ne reste plus qu’à utiliser la fonction de calcul “somme” pour additionner toutes les cases à cocher.
– Et si préalablement tu as utilisé la “convention de dénomination des champs de formulaires” tu n’auras qu’une seule case (parente) à sélectionner pour additionner toutes les cases “tarif” .
Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/duplication-rapide-de-champs-de-formulaire/4 octobre 2019 à 07:07 #66071GClaire
MembreBonjour et bienvenue le nouveau (nous avons donc deux nouveaux et deux anciens dans ce sujet :Smiley03: )
:extra: :extra: :extra:
C’est quand même impressionnant quand on se penche sur un soft pour des besoins plus précis, que l’on découvre tout ce que l’on peut faire avec.
En général on se dit : «c’est juste du PDF» et en fait c’est bien plus.J’ai refilé mon fichier a un ami, il m’a dit texto : «on peut faire tout ça avec Acrobat ?».
Je lui ai répondu : «et encore y’a rien là….»Et je m’en sers tous les mois, même si tout se fait en ligne, je garde une trace sur PC, et il m’aide bien ce fichier.
Encore merci.
G’Claire.8 octobre 2019 à 14:13 #66072masemrom
MembreSalut Merlin
Merci pour tes informations, cependant demeure une interrogation, comment dois je faire pour attribuer une valeur d’exportation à une case à cocher ?
Cordialement Thomas
8 octobre 2019 à 17:31 #66073Merlin
Maître des clésIl faut faire un clic-droit sur la case à cocher (avec l’outil d’édition des champs de formulaire) : Propriétés : Options : Valeur d’exportation (Export value).
:Smiley15: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.