Condition dans un champ de formulaire pdf dynamique

Community Beginner ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

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

 

TOPICS
JavaScript , PDF forms

Views

205

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 2 Correct answers

Adobe Community Professional , Jun 13, 2022 Jun 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

...

Likes

Translate

Translate
Adobe Community Professional , Jun 16, 2022 Jun 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;}

Likes

Translate

Translate
Adobe Employee ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

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

 

Thanks,

Harsh

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

- What are the names of the fields?

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

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.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

voici ma situation exactement 

Caroline24845559op4q_0-1655156308325.png

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

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;

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

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

 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 13, 2022 Jun 13, 2022

Copy link to clipboard

Copied

je viens de regarder mais avec mes pauvres connaissance de ce code je ne m'y retrouve pas. 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jun 14, 2022 Jun 14, 2022

Copy link to clipboard

Copied

Comment sont nommés les champs dont il faut totaliser les valeurs ?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 14, 2022 Jun 14, 2022

Copy link to clipboard

Copied

les champs dans lesquels doivent être inscrit un nombre supérieur à 0 pour faire le calcul dans l'autre cellule soit le total des autres champs en autant qu'il y ait un nombre supérieur à 0 dans chacune d'elles sont les suivantes: Point Q1, Point Q2, Point Q3 ... jusqu'à 6 et le champ ou doit être fait le calcul de la somme des champs Point Qn se nomme Total.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jun 14, 2022 Jun 14, 2022

Copy link to clipboard

Copied

Placez ce script (non testé) en script de Calcul dans le champ "Total".

Il part du principe que les champs "Point Q..." sont tous au format Nombre, sinon ça risque de provoquer des erreurs.

 

var nTotal = 0;
var bVisible = display.visible;
for (var i=1; i<7; i++) {
var nTotal += this.getField("Point Q" +i).value;
if (this.getField("Point Q" +i).value == 0 || this.getField("Point Q" +i).value == "") {var bVisible = display.hidden;}
}
event.target.value = nTotal;
event.target.display = bVisible;

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 14, 2022 Jun 14, 2022

Copy link to clipboard

Copied

Je viens d'essayer le code et il me donne ce message d'erreur :

Caroline24845559op4q_0-1655211559577.png

 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 14, 2022 Jun 14, 2022

Copy link to clipboard

Copied

malheureusement mes essais pour ce code sont toujours infructueux pour l'instant.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

Pouvez-vous partager tout ou partie de ce document ?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

oui le voici

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

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.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

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

 

 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

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?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines