Calcul si conditions  (Lu 153 fois) Partager ce sujet Imprimer

1 B


GClaire  07 août 2019 : 15:22

Bonjour à 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

IP archivée


GClaire  07 août 2019 : 15:52

Re

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

IP archivée


bebarth  07 août 2019 : 17:31

bonjour,
Si j'ai bien compris, il faut écrire :
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:

IP archivée


GClaire  07 août 2019 : 19:50

Hello 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

IP archivée


bebarth  07 août 2019 : 22:01

bonsoir,
Il faut respecter les majuscules... "undefined_16" n'est pas la même chose que "Undefined_16".
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:

IP archivée


GClaire  08 août 2019 : 04:48

Bebart

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

IP archivée


GClaire  08 août 2019 : 06:21

Re

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 :

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;
}

Ou ai-je pu faire une erreur?

Merci pour votre aide.

Cordialement, G'Claire

IP archivée


bebarth  08 août 2019 : 06:36

bonjour,
Essaie avec :
var Var_TotPayer = ...et
event.target.value == "";
@+
 :bonjour:

IP archivée


GClaire  08 août 2019 : 07:32

Bonjour 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

IP archivée


GClaire  09 août 2019 : 19:25

Hello.

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.

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

IP archivée


bebarth  09 août 2019 : 23:41

je regarde plus tard, mais ce serait plutôt :
...
If (...value == ““) {
event.target.value = ““
} else {
...
== est actuellement égal à
= devient égal à
@+
 :bonjour:

IP archivée


Merlin  11 août 2019 : 11:06

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

IP archivée


GClaire  11 août 2019 : 11:55

Bonjour 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

IP archivée


GClaire  11 août 2019 : 11:59

je regarde plus tard, mais ce serait plutôt :
...
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

IP archivée


Merlin  11 août 2019 : 15:41

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

IP archivée


bebarth  11 août 2019 : 17:15

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

IP archivée


GClaire  12 août 2019 : 07:49

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.

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

IP archivée


GClaire  12 août 2019 : 07:58

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

IP archivée


GClaire  16 août 2019 : 09:20

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

IP archivée


bebarth  16 août 2019 : 10:08

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

IP archivée


GClaire  17 août 2019 : 13:44

Le 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

IP archivée