Donnez vie à vos documents numériques !
 

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

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #43759
    FRANCESCO
    Membre

    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

Affichage de 19 réponses de 1 à 19 (sur un total de 19)
  • Auteur
    Réponses
  • #50435
    Merlin
    Maî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).

    :)

    #50436
    FRANCESCO
    Membre

    Merci 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

    #50437
    Merlin
    Maître des clés

    Merci 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…
      :-X

    #50438
    FRANCESCO
    Membre

    bon tanpis
    je chercherai ailleurs

    et merci quand même.

    #50439
    Merlin
    Maître des clés

    Tout vient à point pour qui sait attendre…

    De toute façon, ici ce n’est pas moi le king du JavaScript !

    😎

    #50440
    FRANCESCO
    Membre

    Et 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??

    #50441
    alex
    Membre

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

    #50442
    alex
    Membre

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

    #50443
    FRANCESCO
    Membre

    Merci 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é: »

    #50444
    alex
    Membre

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

    #50445
    FRANCESCO
    Membre

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

    #50446
    alex
    Membre

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

    #50447
    FRANCESCO
    Membre

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

    #50448
    Merlin
    Maître des clés

    Et qui est ce ? Vient-il souvent ?

    Je crois que tu as déjà la réponse…
    ;)

    #50449
    alex
    Membre

    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.

    #50450
    Merlin
    Maître des clés

    Les possibilités de manipulation des champs sont effectivement une des différences profondes entre AcroForm (Acrobat) et XFA (Designer).

    :(

    #50451
    FRANCESCO
    Membre

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

    #50452
    alex
    Membre

    Si 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]

    #50453
    FRANCESCO
    Membre

    J’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:

Affichage de 19 réponses de 1 à 19 (sur un total de 19)
  • Vous devez être connecté pour répondre à ce sujet.