abracadabraPDF › Forums › PDF – Général › Champ caché selon une réponse à une question + Bouton Sauvegarde
- Ce sujet est vide.
-
CréateurSujet
-
13 janvier 2010 à 15:00 #43759FRANCESCOMembre
Bonjour à tous
Voila mon problème, je développe un formulaire grâce à Adobe Designer version 7.0. et je voudrais que lorsque l’utilisateur rentre “autre” dans une DropDownList un champ TextField (que j’ai déjà crée) apparaisse, pour que l’utilisateur puisse préciser sa réponse.
Autre problème mais celui-ci à mon avis insoluble :
Je souhaiterai pouvoir intégrer à ce formulaire PDF un bouton permettant la sauvegarde au format pdf de ce formulaire.
D’où deux questions à ce sujet: est ce possible avec un “Button”??
et si oui comment?? (où rentrer le code?)
et si non comment permettre aux utilisateurs de sauvegarder un formulaire en cours de remplissage (alors qu’ils n’ont que Acrobat Reader).Merci d’avance de vos réponses.
François
-
CréateurSujet
-
AuteurRéponses
-
14 janvier 2010 à 12:37 #50435MerlinMaître des clés
1- je ne connais pas assez Designer pour pouvoir te répondre
2- il faut “Etendre les fonctions de Reader”, cela se fait depuis le menu “Options avancées” d’Acrobat, soit en diffusant le formualire via Acrobat.com (l’activation des fonctions de Reader est automatique).
Concernant le bouton, il faut aller dans les “Propriétés” du bouton (clic-droit dessus), dans le panneau “Actions”.
Là on peut utiliser soit du code JavaScript, soit “Exécuter une commande…” (menu Fichier > Enregistrer-sous).15 janvier 2010 à 10:38 #50436FRANCESCOMembreMerci pour ta réponse Merlin …mais je n’ai pas la version de Designer qui permet aux utilisateurs futurs de sauvegarder. J’ai Acrobat Pro 7 et pas d’onglet “Etendre les fonctions de Reader” sur cette version.
Pour l’autre point (le champ conditionnel) j’ai entré le script suivant dans le script du TextField mais ca me marche pas.
if (this.getField(“DropDownList12”).value !== “Oui”)
{
//le champ reste visible
event.target.visible = true
}
//condition si champ-révision contient Non
else
{
//le champ devient invisible
event.target.visible = false
}Sauriez vous où est l’erreur ou les erreurs??
Je le rentre en initialize
Merci d’avance
15 janvier 2010 à 11:37 #50437MerlinMaître des clésMerci pour ta réponse Merlin …mais je n’ai pas la version de Designer qui permet aux utilisateurs futurs de sauvegarder. J’ai Acrobat Pro 7 et pas d’onglet “Etendre les fonctions de Reader” sur cette version.
C’est normal, cette possibilité est apparue avec la version 8.
Pour le reste je ne connais pas les particularités de Designer concernant le JavaScript…
:-X15 janvier 2010 à 11:58 #50438FRANCESCOMembrebon tanpis
je chercherai ailleurset merci quand même.
15 janvier 2010 à 22:54 #50439MerlinMaître des clésTout vient à point pour qui sait attendre…
De toute façon, ici ce n’est pas moi le king du JavaScript !
😎
18 janvier 2010 à 10:31 #50440FRANCESCOMembreEt qui est ce??
Vient il souvent??Sinon autre problème, je souhaiterai limiter les valeurs possibles (pour un pourcentage) entre 0 et 100
Comment faire??18 janvier 2010 à 11:56 #50441alexParticipantProblème:
Masquer un champ à partir d’une sélection
Script à associer au champ de liste (émetteur de l’évènement)
Onglet Format>
Catégorie de format>Personnalisé
Script de touches personnalisé>if(!event.willCommit)
{
//Pour les curieux, ce sera dans la console (Pomme-J ou CTRL J)
console.clear();
console.println(“Nom de l’objet solliscité:”+event.target.name);
console.println(“Valeur exportée:”+event.target.value);
console.println(“Nom item activé:”+event.change);
//Masquer le champ “ChampAmasquer” si on sélectionne “Autre”
f2=this.getField(“ChampAmasquer”);
f2.delay=true;
if(event.change==”Autre”)
{
f2.hidden=true;
}
else
{
f2.hidden=false;
}
f2.delay=false;
//Fin de notre affaire.
}Script valide sur les versions 7,8,9 d’Adobe Reader sur un formulaire AcroForm.
18 janvier 2010 à 12:17 #50442alexParticipantProblème:enregistrer un formulaire et ses données.
Ce n’est plus un problème depuis la version 8.
Créer un bouton ayant pour action de lancer le script suivant:
app.execMenuItem(“Save”);
Enregistrer le formulaire puis activer “Etendre les fonctions de Reader”.
Script valide pour les versions 8 et 9 D’adobe Reader.18 janvier 2010 à 12:38 #50443FRANCESCOMembreMerci beaucoup pour ta réponse Alex
mais comme je ne suis pas une star du Java ni de l’informatique
peux-tu préciser ces quatres lignes:console.clear();
console.println(“Nom de l’objet solliscité:”+event.target.name);
console.println(“Valeur exportée:”+event.target.value);
console.println(“Nom item activé:”+event.change);en particulier à quoi doivent faire reference ces termes.
“Nom de l’objet solliscité:”
“Valeur exportée:”
“Nom item activé:”18 janvier 2010 à 12:48 #50444alexParticipantToutes ces “méthodes” JavaScript sont facultatives. Elles ont un but pédagogique.
console.clear();
Efface le contenu de la console.
console.println(“Nom de l’objet solliscité:”+event.target.name);
Affiche le nom de l’objet sur lequel l’action a lieu (ici la liste elle-même)
console.println(“Valeur exportée:”+event.target.value);
Affiche la valeur utilisable par la suite dans le script.
console.println(“Nom item activé:”+event.change);
Affiche l’item activé utilisable par la suite dans un script.18 janvier 2010 à 13:01 #50445FRANCESCOMembreca marche toujours pas donc dernière question (enfin peut être…)
le script est montré comme quoi :
initialize
enter
exit
calculate
validate
….Et merci beaucoup Alex de consacrer un peu de ton temps à mon problème.
18 janvier 2010 à 13:11 #50446alexParticipantCe script ne fonctionne qu’avec AcroForm (les formulaires créés sous Acrobat). Pour les formulaires construits avec Adobe Designer, la syntaxe est différente.
Les personnes qui fréquentent ce site travaillent sur Mac en général et ne disposent pas du Designer, c’est la raison pour laquelle je donne de préférence des solutions AcroForm.
Je vais regarder si je peux te répondre côté Designer si tu peux patienter un jour ou deux car je suis hors Paris et je n’ai pris que mon Mac.18 janvier 2010 à 13:20 #50447FRANCESCOMembre:mur: Ceci explique cela. Ca me rassure ! :priere:
Il n’y a aucun problème pour attendre un jour ou deux.
Profite bien du en dehors de Paris.18 janvier 2010 à 17:25 #50448MerlinMaître des clésEt qui est ce ? Vient-il souvent ?
Je crois que tu as déjà la réponse…
19 janvier 2010 à 16:48 #50449alexParticipantSous 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 texte1formulaire1.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 scriptJe 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.
20 janvier 2010 à 10:57 #50450MerlinMaître des clésLes possibilités de manipulation des champs sont effectivement une des différences profondes entre AcroForm (Acrobat) et XFA (Designer).
20 janvier 2010 à 12:51 #50451FRANCESCOMembreMerci beaucoup à toi Alex mais malheureusement je n’ai que la version 7 de Designer.
Mais j’aurai, j’espère, bientot la version ultérieure et je suis sur que cela marchera.
Grand merci a toi en tout cas.20 janvier 2010 à 13:40 #50452alexParticipantSi tu peux ouvrir le fichier joint avec ton Designer 7 sur PC, tu y trouveras une variante de ces scripts dans leur contexte de développement et en particulier l’arborescence des objets.
Sur Mac,PC,LINUX, sous Acrobat ou sous Adobe Reader, on voit le résultat des actions.[attachment deleted by admin]
27 janvier 2010 à 09:15 #50453FRANCESCOMembreJ’ai réussi; :soleil: je n’y croyais plus mais, grâce à ton petit fichier, ca marche.
je comprends pas néccessairement pourquoi mais ca marche et en plus c’est adaptable pour toutes les box.
JE SUIS RAVI :contentdance: :contentdance:
GRAND GRAND MERCI A TOI ALEX :bravo: :bravo: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.