Mise en forme chiffre formulaire PDF  (Lu 338 fois) Partager ce sujet Imprimer

1 B


Ekinor  20 décembre 2020 : 14:49

Hello,
Je voudrais pouvoir afficher le signe de tout les chiffres se trouvant dans mes différente saisie sur mon fichier formulaire pdf.
Exemple:
Si mon calcul a comme résultat -1. La case affiche -1.Si mon calcul a comme résultat 1. la case affiche +1 (à l'heure actuelle il m'affiche 1)Et si c'est 0. La case affiche 0.

Merci d'avance.
Je suis vraiment profane donc si je ne me suis pas bien exprimé je m'en excuse.
Salutations
Ekinor

IP archivée


bebarth  20 décembre 2020 : 19:20

bonjour,
En script de calcul du champ "total" :
if ((this.getField("nb1").value-this.getField("nb2").value)>0) event.target.value="+"+(this.getField("nb1").value-this.getField("nb2").value);
else event.target.value=this.getField("nb1").value-this.getField("nb2").value;
@+
 :bonjour:

IP archivée


Ekinor  20 décembre 2020 : 19:49

Merci beaucoup de ta réponse.


Je pense que je n’ai pas bien exprimé mon problème.


Ce que j’aimerais c’est qu’un chiffre positif dans la réponse de n’importe quelle case automatiquement remplie aie le signe +. Ce qui n’est pas le cas.


Si la réponse est 1 il me note 1 et non +1.


Je peux voir pour donner l’exemple de mon code si il le faut.

IP archivée


bebarth  20 décembre 2020 : 20:00

En script de calcul de chaque champ :
if (Number(event.target.value)>0) event.target.value="+"+event.target.value;...et télécharge le fichier joint pour voir ce que ça fait !!!
@+
 :bonjour:

IP archivée


Ekinor  21 décembre 2020 : 00:38

Hello,
Ce que tu m'as donné marche dans 50% des cas dans mon formulaire.... :Ooops:
Maintenant ce qui me pose problème c'est que le signe "+" n'apparaît que pour les nombres pairs :Smiley05: .
Voici mon code (on ne se moque pas je débute).
var profil = this.getField("Profil").value; //déclaration variable "profil" qui prend la valeur de la case "Profil"
var modFor = this.getField("Mod FOR").value; // déclaration variable "modFor" qui prend la valuer de la case "Mod FOR"


if (profil=='Militaire')event.value=modFor+0; // si la case nommée Profil contient "Militaire" alors on addition la valeur de la variable modFor avec la valeur unique "0"
    else if (profil=='Pilote')event.value=modFor+1; // si la case nommée Profil contient "Pilote" alors on addition la valeur de la variable modFor avec la valeur unique "1"
    else if (profil=='Baroudeur')event.value=modFor+1;
    else if (profil=='Chasseur de gros gibiers')event.value=modFor+0;
    else if (profil=='Garde du corps')event.value=modFor+2;
    else if (profil=='Pompier')event.value=modFor+2;
    else if (profil=='Criminel')event.value=modFor+1;
    else event.value="___";

if (Number(event.target.value)>0) event.target.value="+"+event.target.value; // ici j'ai collé le bout de code que tu m'as donné.


IP archivée


bebarth  21 décembre 2020 : 09:18

bonjour,
Maintenant ce qui me pose problème c'est que le signe "+" n'apparaît que pour les nombres paires :Smiley05: .
C'est certainement une coïncidence, parce qu'il n'y a pas de raison. Pour trouver plus facilement le pourquoi, ce serait plus simple de voir le fichier...
Que dit la console ? Je pense que tu dois avoir NaN si la valeur du champ est "___".
A quoi sert d'ajouter 0 ?
Essaye avec event.target.value (valeur après l'action alors que event.value est la valeur avant l'action).
@+
 :bonjour:

IP archivée


Ekinor  21 décembre 2020 : 16:50

Alors

les +0 me servent simplement à contrôler que je n'ai pas fait d'oubli dans le calcul des compétences de chaque personnage. Mais j'avoue que d'un point de vue calcul ceci n'avance à rien. :Smiley08:
Je ne sais pas ce qu'est un NaN?
J'ai trouvé d'où venait le problème mais sans comprendre pourquoi...
:Ooops: j'ai simplement retiré "Number" de la ligne de code:
if (Number(event.target.value)>0) event.target.value="+"+event.target.value;
Je te remercie de ton aide.
Je suis maintenant embêté sur un autre point mais je vais refaire un sujet là dessus.

IP archivée


bebarth  21 décembre 2020 : 19:36

Je ne sais pas ce qu'est un NaN?
Ça veut dire Not a Number, donc si tu enlèves Number, il n'y a plus d'erreur... mais comme je ne savais pas le format de champ...
@+
 :bonjour:

IP archivée


Merlin  21 décembre 2020 : 19:50

Not a Number = Pas un Chiffre (0 à 9).
Par opposition aux autres types de valeurs (string, array, etc.)

Par exemple :
this.getField("CHAMP").value = "777";
N'est pas la même chose que
this.getField("CHAMP").value = 777;

Dans le premier cas 777 est une chaine de caractères (string) comme une autre.
Dans le deuxième cas 777 est un chiffre (Number).

Quand on veut faire des calculs avec des valeurs/variables dont le Type n'est pas certain on peut forcer le Type chiffre avec Number() :
var A = this.getField("AAA").value;
var B = this.getField("BBB").value;
event.target.value = Number(A) + Number(B);




Sachant qu'un chiffre est forcément un nombre mais qu'un nombre n'est pas forcément un chiffre il faut faire attention aux traductions approximatives    :geek:

IP archivée


Ekinor  21 décembre 2020 : 20:20

Ok merci pour ces informations précieuses.
Je pense bien que ce n’est pas facile de me répondre sans le fichier sous les yeux. Mais vous l’avez fait et c’est fort! :Smiley08:
Si jamais j’ai posé une nouvelle question et là j’ai mis le fichier en lien. Donc si vous voulez voir c’est sous la zone de saisie « Mod ATC » ou « Mod ATD ». Et ne jugez pas la médiocre qualité du code je de débute  :Smiley11: .


Merci encore


Salutations

IP archivée


Merlin  21 décembre 2020 : 22:21


IP archivée