Skip to main content
Participating Frequently
June 13, 2022
Answered

Condition dans un champ de formulaire pdf dynamique

  • June 13, 2022
  • 8 replies
  • 5196 views

Bonjour voici ma situation. J'ai un champ à compléter par l'utilisateur. Un autre champ utilisera la donnée et si la donnée inscrite est inférieure ou égale à 35 000 le résultat à inscrire au champ sera1 et si le résultat des supérieur à 35 000 devra inscrire 2. Est-ce que quelqu'un peut m'aider avec le code et me dire si c'est un champ de validation ou de calcul.

Merci d'avance pour votre aide

 

This topic has been closed for replies.
Correct answer JR Boulay

Placez ce script en script de calcul dans le champ qui doit afficher les mentions (et supprimez le votre) :

 

var oChamp = this.getField("total");
if (Number(oChamp.value) < 11) {event.target.value = "Conservateur";}
else if (Number(oChamp.value) >= 11 && Number(oChamp.value) > 17) {event.target.value = "Modéré";}
else if (Number(oChamp.value) >= 17) {event.target.value = "Audacieux";}
else {event.target.value = event.target.defaultValue;}

8 replies

JR Boulay
JR BoulayCorrect answer
Community Expert
June 16, 2022

Placez ce script en script de calcul dans le champ qui doit afficher les mentions (et supprimez le votre) :

 

var oChamp = this.getField("total");
if (Number(oChamp.value) < 11) {event.target.value = "Conservateur";}
else if (Number(oChamp.value) >= 11 && Number(oChamp.value) > 17) {event.target.value = "Modéré";}
else if (Number(oChamp.value) >= 17) {event.target.value = "Audacieux";}
else {event.target.value = event.target.defaultValue;}

Acrobate du PDF, InDesigner et Photoshopographe
Participating Frequently
June 16, 2022

Merci beaucoup pour votre aidem ceci fonctionne à merveille! bonne journée à vous!

 

JR Boulay
Community Expert
June 15, 2022

Les champs de votre document n'étaient pas rigoureusement nommés : il n'y avait pas d'espace dans les noms de "PointQ5" et "PointQ6", donc le script ne pouvait pas fonctionner.

Et vous aviez aussi oublié de supprimer un script de validation.

Ci-joint.

Acrobate du PDF, InDesigner et Photoshopographe
Participating Frequently
June 15, 2022

Merci beaucoup ça fonctionne effectivement, je vois maintenant mon erreur en comparant votre fichier au mien.

 

 

Participating Frequently
June 15, 2022

j'ai fait ce code pour un champ auquel je dois inscrire le terme "Conservateur" si le résultat du champ total est inférieur à 11, le terme "Modéré" si le résultat du champ "total" est supérieur ou égale à 11 et inférieur à 17 et finalement inscrire le terme "Audacieux" si le résultat du champ "total" est supérieur ou égale à 17 :

var oChamp = this.getField("total");
if (Number(event.value) < 11) {oChamp.text = "Conservateur";}
else if (Number(event.value) >= 11 && Number(event.value) <= 17) {oChamp.value = "Modéré";}
else if (Number(event.value) >= 17 ) {oChamp.value = "Audacieux";}
else {oChamp.value = oChamp.defaultValue;}

Mais je n'obtient pas de texte dans la case au final. Est-ce possible de m'éclairer sur la problématique de ce code svp?

JR Boulay
Community Expert
June 15, 2022

Pouvez-vous partager tout ou partie de ce document ?

Acrobate du PDF, InDesigner et Photoshopographe
Participating Frequently
June 15, 2022
Participating Frequently
June 15, 2022

J'ai trois champs que je dois faire une validation pour le champ "Total", le champ "Profil d'investisseur" et le champ "Recommandation d'investissement". 

 

Donc pour le champ "Total", une somme des champs point(s) doit être fait si les champs Point(s) (nommés Point Q1 à 7) sont différent de 0 ou "". Pour les deux autres champs le code devrait être similaire soit un texte à inscrire si valeur du champ total entre tel et tel donnée ou autre texte si entre tel et tel donnée ..

JR Boulay
Community Expert
June 13, 2022

Remplacez "autrechamp" par le nom du champ "Point(s)", étant entendu que "Point(s)" c'est le libellé du champ, ce n'est pas son nom (le nom est visible en mode Edition).

Et placez le script en script de Validation dans le champ "Valeur".

 

Acrobate du PDF, InDesigner et Photoshopographe
Participating Frequently
June 13, 2022

Un gros merci pour votre patience, la formule fonctionne ainsi! Bonne soirée à vous

Participating Frequently
June 13, 2022

Bonjour, j'ai une case dans laquelle je veux calculer le total de nombre inscrit dans d'autre champ si la valeur de ces champs est supérieur à 0. Si l'un des champs a une valeur égale à 0 ou vide je ne veux pas que le résultat du calcul à la case total s'affiche (afin d'éviter que des questions ne soient pas répondu. J'aurais besoin d'aide! Merci d'avance

JR Boulay
Community Expert
June 13, 2022

Oui et non. 😉

Ce n'est pas le nom de la variable qu'il faut remplacer, c'est le nom du champ, en orange : autrechamp

Celui-ci est un exemple.

Acrobate du PDF, InDesigner et Photoshopographe
Participating Frequently
June 13, 2022

voici ma situation exactement 

donc le champ ou est inscrit 200 $ est nommé "Valeur" et le champ dans lequel je veux faire la validation est inscrit Point(s) : et le résultat est 2 actuellement ce qui ne devrait pas être le cas car dans la validation je mentionne via votre formule que si Valeur < 35000 alors afficher 1 au champ. Voici mon code: var oChamp = this.getField("Valeur");
if (Number(event.value) > 35000) {oChamp.value = 2;}
else if (Number(event.value) <= 35000) {oChamp.value = 1;}
else {oChamp.value = oChamp.defaultValue;}

Participating Frequently
June 13, 2022

j'ai également essayer ceci mais également sans succès, le résultat obtenu est toujours 2 

var v1 = Number(this.getField("Valeur").valueAsString);
var v2 = Number(this.getField("PointQ6").valueAsString);
if (v1==0) v2.value = "";
else if (v1 > 35000) v2.value = 2;
else if (v1 <= 35000) v2.value = 1;

JR Boulay
Community Expert
June 13, 2022

Bonjour

 

Utilisez ce script qui serait mieux placé en script de Validation, après avoir modifié le nom du champ cible :

 

var oChamp = this.getField("autrechamp");
if (Number(event.value) > 35000) {oChamp.value = 2;}
else if (Number(event.value) <= 35000) {oChamp.value = 1;}
else {oChamp.value = oChamp.defaultValue;}

 

Sinon vous pouvez l'utiliser en script de Format Personnalisé, sauf si vous devez récupérer cette valeur dans un calcul ultérieur (un script de Format ne modifie pas la valeur d'un champ, il ne modifie que son aspect, donc dans certains cas ça change tout).

Acrobate du PDF, InDesigner et Photoshopographe
Participating Frequently
June 13, 2022

Bonjour, 

Je viens d'essayer ceci et je me demandais si au lieu de oChamp je devais inscrire le titre du champ dans lequel j'attends le résultat de la validation Merci pour votre aide!

 

var oChamp = this.getField("autrechamp");
if (Number(event.value) > 35000) {oChamp.value = 2;}
else if (Number(event.value) <= 35000) {oChamp.value = 1;}
else {oChamp.value = oChamp.defaultValue;}

try67
Community Expert
June 13, 2022

- What are the names of the fields?

- What should the second field show if the first field is empty?

Participating Frequently
June 13, 2022

le champ contenant les valeurs à valider se nomme Texte1 et le champ dans lequel j'attends le résultat se nomme Point Q5.

Harsh Vardhan Pareek
Community Manager
Community Manager
June 13, 2022

Hi @Caroline24845559op4q 

 

Hope you are doing well.

As mentioned that you want to add a custom calculation field in a PDF. Unfortunately there is no direct tool for this, you need to use a script to make this custom field. 

Here is a similar discussion to know how to create custom calculation fields in the app.

https://community.adobe.com/t5/acrobat-discussions/creating-a-custom-calculation-script-in-adobe-acrobat/td-p/9947857

 

Thanks,

Harsh