abracadabraPDF › Forums › PDF – Général › Affichage de texte pour deux cases cochées dans formulaire PDF Acrobat Pro DC
- Ce sujet est vide.
-
CréateurSujet
-
9 septembre 2019 à 08:28 #46128hotispotMembre
Bonjour à tous,
J’ai une petite question à vous soumettre :J’ai créé un formulaire dans lequel il y a deux cases à cocher, qui ne s’annulent pas l’une l’autre.
Quand on coche la première, un texte s’affiche.
Quand on décoche la première case pour cocher la seconde, un autre texte apparaît.
Jusqu’ici tout va bien : un script hidden/visible fonctionne parfaitement.
En revanche, ce que je souhaite et que je n’arrive pas à faire, c’est qu’un troisième texte s’affiche lorsque je coche les deux cases en même temps.
Est-ce que c’est possible et si oui quel phrase de script dois-je rajouter ?Merci d’avance à tous.
N. -
CréateurSujet
-
AuteurRéponses
-
9 septembre 2019 à 09:15 #66136MerlinMaître des clés
Bonjour et bienvenue.
Écrire un tel script n’est pas difficile, mais faute d’un exemple concret on risque de tâtonner.
Peux tu partager ton document, ou bien une maquette-exemple ?9 septembre 2019 à 09:33 #66137hotispotMembreBonjour,
Merci beaucoup pour votre réactivité.
Voici le pdf…
Les deux cases en question sont les deux premières…Merci encore
9 septembre 2019 à 09:38 #66138Chambi95ParticipantMerlin a bien raison…
En attendant, voici un exemple anonymisé sur un de mes PDF (qui fonctionne parfaitement et est utilisé dans une 40aine de banques et CGPI, par des milliers d’utilisateurs….)
Une case à cocher s’appelle GP (Garantie de Prévoyance) l’autre GD (Gestion Déléguée). Ces deux cases ont “1” en valeur de renvoi.
Les traitements à faire diffèrent suivant que l’on a pris la GD ou pas, un texte différent s’affiche suivant que l’on ai pris l’un ou l’autre ou les deux, il n’y a pas de texte si l’on ne sélectionne aucune des deux cases.
Dans cet exemple, lorsque la case GD est cochée, un champ de saisie supplémentaire apparait accompagné de son libellé.
Je n’ai laissé que ce qui concerne l’affichage des différents objets, pas les calculs actuariels. J’espère que je n’ai pas dégagé un } ou un ; en enlevant tout ce qui est calcul ou appel d’autres scripts !Le champ d’affichage qui reçoit le texte et le “Texte_GPGD”
// Cette version tronque les montants nets et tronque unitairement chaque partie composant la valeur de rachat
function Calcul_vr()
{if ((this.getField(“GP”).value==1)&&(this.getField(“GD”).value!=1))
{this.getField(“Fonds_01”).readonly=false;
this.getField(“Texte_Montant_GD”).display=display.hidden;
this.getField(“Montant_versement_GD”).display=display.hidden;
this.getField(“Montant_versement_GD”).value=0
this.getField(“Texte_GPGD”).value=(“J’ai souscrit une Garantie de Prévoyance, alors il n’existe pas de valeur de rachat minimale exprimée en euros. Des simulations des valeurs de rachat avec prise en compte de la garantie de prévoyance sont indiquées à l’article “Montant cumulé des versements bruts et valeurs de rachat au terme des huit premières années” de la Note d’information valant Conditions générales.”);
;}
}
else if((this.getField(“GP”).value!=1)&&(this.getField(“GD”).value==1))
{this.getField(“Texte_GPGD”).value=(“J’ai investi sur le mode de gestion déléguée alors le calcul de valeur de rachat minimale exprimée en euros est effectué sur les fonds en euros hors fonds Actif Général de xxxxxxxx Vie. “);
this.getField(“Texte_Montant_GD”).display=display.visible;
this.getField(“Montant_versement_GD”).display=display.visible;}
else if((this.getField(“GP”).value==1)&&(this.getField(“GD”).value==1))
{this.getField(“Texte_GPGD”).value=(“J’ai investi sur le mode de gestion déléguée et j’ai souscrit une Garantie de Prévoyance, alors il n’existe pas de valeur de rachat minimale exprimée en euros. Des simulations des valeurs de rachat avec prise en compte de la garantie de prévoyance sont indiquées à l’article “Montant cumulé des versements bruts et valeurs de rachat au terme des huit premières années” de la Note d’information valant Conditions générales.”);
this.getField(“Texte_Montant_GD”).display=display.visible;
this.getField(“Montant_versement_GD”).display=display.visible;
;}
};else
{this.getField(“Texte_GPGD”).value=(“”);
this.getField(“Fonds_01”).readonly=false;
this.getField(“Texte_Montant_GD”).display=display.hidden;
this.getField(“Montant_versement_GD”).display=display.hidden;
this.getField(“Montant_versement_GD”).value=0;
};
}9 septembre 2019 à 11:18 #66139MerlinMaître des cléshotispot : on ne doit pas mettre d’espaces ni de caractères accentués ou spéciaux dans les noms de champs. Et surtout jamais de slash /
:tutut:Voici le script que j’ai utilisé dans le ci-joint :
Code:// mise en variable des valeurs des coches
var n1 = this.getField(“IndemFC”).value;
var n2 = this.getField(“IndemFCL”).value;// une case non cochée renvoie une valeur non numérique (NaN : Not a Number)
if (isNaN(Number(n1))) {var n1 = 0;}
else {var n1 = this.getField(“IndemFC”).value;}
if (isNaN(Number(n2))) {var n2 = 0;}
else {var n2 = this.getField(“IndemFCL”).value;}// comptage du total des deux coches
var nTotal = Number(n1) + Number(n2);// masquage des champs “titre”
this.getField(“titre”).display = display.hidden;// affichage du champ concerné
switch(nTotal) {
case 1:
this.getField(“titre.IFC_CE”).display= display.visible;
break;
case 2:
this.getField(“titre.IFCIL_CE”).display= display.visible;
break;
case 3:
this.getField(“titre.IFCCE_IFCILCE”).display= display.visible;
break;
default:
this.getField(“titre”).display = display.hidden;
break;
}9 septembre 2019 à 11:23 #66140MerlinMaître des clésChambi95 : on ne doit pas mettre de caractères accentués dans les scripts !
Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/pdf-javascript-et-unicode/
:Smiley03:9 septembre 2019 à 14:47 #66141hotispotMembreUn grand grand merci, Merlin…
Comme vous l’aurez remarqué, je ne suis pas “encore” très doué avec les formulaires.
Mais, grâce à vous, je compte bien m’améliorer.
En tout cas, vous m’enlevez une belle épine du pied !Je vous souhaite une très belle journée.
A bientôt et encore merci Merlin9 septembre 2019 à 15:56 #66142bebarthMaître des clésbonjour,
J’arrive un peu tard, mais a-t-on besoin de 3 boutons ???
Si NON, un seul champ texte avec 3 valeurs différentes :Code:if (this.getField(“IndemFC”).value!=”Off”) { // Si la case FC est cochée
if (this.getField(“IndemFCL”).value!=”Off”) { // Les 2 cases sont cochées
event.value=”CONTRATS “IFC CE” OU “IFC/IL CE””;
} else { // Uniquemenet FC est cochée
event.value=”CONTRATS “IFC CE””;
}
} else { // la case FC n’est pas cochée
if (this.getField(“IndemFCL”).value!=”Off”) { // Uniquemenet FCL est cochée
event.value=”CONTRATS “IFC/IL CE””;
} else { // Aucune case n’est cochée
event.value=””;
}
}Et pour être un tout petit peu pointilleux, c’est inutile d’indiquer la ligne “break;” pour la valeur “default” de l’instuction “switch”.
“default” est généralement indiqué en dernière position et on sort donc de l’instruction juste après. Et même, si on plaçait “default” en première position, ce qui serait théoriquement possible, il ne faudrait surtout pas exécuter la ligne “break;” car sinon les autres cas ne seraient pas étudiés…
@+
:bonjour:9 septembre 2019 à 16:49 #66143MerlinMaître des clésc’est inutile d’indiquer la ligne “break
Je le note.
:Smiley03:9 septembre 2019 à 16:52 #66144MerlinMaître des clésa-t-on besoin de 3 boutons ???
Si NON, un seul champ texte avec 3 valeurs différentesJe suis d’accord, mais pour le coup les textes sont en fait des images.
:joker:10 septembre 2019 à 09:11 #66145Chambi95ParticipantChambi95 : on ne doit pas mettre de caractères accentués dans les scripts !
Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/pdf-javascript-et-unicode/
:Smiley03:Sur le principe oui bien sûr je suis d’accord….. mais le PDF en question tourne dans plus de 50 versions différentes depuis 3 ans chez des milliers d’utilisateurs répartis une quarantaine d’apporteurs (sans compter les indépendants) sur Mac, Windows XP, 7… 10 avec des Reader X, XI et DC…. sans aucun souci, alors…..
Ce qui m’embête le plus c’est qu’il ne fonctionne pas sur Android à cause du Reader Adaube….
10 septembre 2019 à 11:57 #66146MerlinMaître des clésCe qui m’embête le plus c’est qu’il ne fonctionne pas sur Android à cause du Reader Adaube…
Rendons à Jules ce qui est à César : c’est Google et surtout Apple qui font tout leur possible pour empêcher Adobe de fournir un Reader “mobile*” avec des fonctions équivalentes à la version ordinateur.
Ils préfèrent toujours vendre des apps** plutôt que de laisser circuler des documents complexes gratuitement, c’est pour ça qu’ils ont réussi à tuer Flash Player et le format SWF, y compris sur ordinateur.* C’est doublement compliqué pour Adobe qui considère qu’Acrobat Reader doit avoir les mêmes fonctions sur Android et sur iOS…
** Une app peut être gratuite pour l’utilisateur mais jamais pour le développeur qui doit payer pour publier, et chez Apple c’est particulièrement cher. -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.