Donnez vie à vos documents numériques !
 

Répondre à : Champ caché selon une réponse à une question + Bouton Sauvegarde

abracadabraPDF Forums PDF – Général Champ caché selon une réponse à une question + Bouton Sauvegarde Répondre à : Champ caché selon une réponse à une question + Bouton Sauvegarde

#50449
alex
Participant

Sous Adobe LiveCycle Designer ES 8.2 et uniquement sur PC donc.
Question modification des propriétés des champs, on est pas gâté! En fait, on ne peut pas masquer un champ, mais seulement rendre invisible son contenu et interdire son accès. Voilà comment coder ça.
Le script ci-dessous est lançé par la liste déroulante Liste1 qui va asservir le champ texte1

formulaire1.Page1.Liste1::validate – (JavaScript, both)
//Sur évènement validate de la liste déroulante Liste1
//Attention choisir Langue:JavaScript
console.println(“Début de test avec sélection de “+Liste1.rawValue);
//Afficher l’item sélectionné dans le champ texte1
formulaire1.Page1.texte1.rawValue=Liste1.rawValue;
//Cas où le résultat est “Autre”
        if(formulaire1.Page1.texte1.rawValue==”Autre”)
      {
      //Rend le contenu du champ invisible et toute saisie impossible
      formulaire1.Page1.texte1.presence=”invisible”;
      }
//Cas où le résultat n’est pas “Autre”
    else
        {
        //Rend le contenu du champ visible et toute saisie possible
      formulaire1.Page1.texte1.presence=”visible”;
      formulaire1.Page1.texte1.fontColor=color.black;
        }
console.println(“Fin de test”);
//console.show();

Le petit script suivant permet de remplir les items du menu déroulant Liste1 ici avec Bouton1:
formulaire1.Page1.Bouton1::click – (JavaScript, both)
//Sur évènement clic du bouton ou sur autre chose (ouverture doc ou page).
console.clear();
formulaire1.Page1.Liste1.clearItems();
formulaire1.Page1.Liste1.addItem(“Item1”);
formulaire1.Page1.Liste1.addItem(“Item2”);
formulaire1.Page1.Liste1.addItem(“Item3”);
formulaire1.Page1.Liste1.addItem(“Item4”);
formulaire1.Page1.Liste1.addItem(“Autre”);
formulaire1.Page1.Liste1.fontColor=color.red;
//Fin du script

Je vais creuser cette affaire pour voir si une astuce ne permettrait pas de vraiment masquer les champs. La propriété .presence=”invisible” du formulaire XFA est très différente de .hidden=true d’AcroForm et le champ reste bien visible!

Note: il y a là assez d’éléments pour résoudre le problème d’une liste déroulante Liste1 qui, en fonction de la sélection remplit une seconde liste de choix Liste2.

C’est tout pour aujourd’hui.