Donnez vie à vos documents numériques !
 

Créer un menu dynamique à partir d’une liste de choix

abracadabraPDF Forums PDF – Général Créer un menu dynamique à partir d’une liste de choix

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46541
    Braindead
    Membre

    Bonjour,

    Après des heures de tests en vain je me tourne vers vous.
    Je souhaiterais créer un menu en fonction de choix de 2 listes.
    Pour les listes et récupérer leur valeur : OK

    Par contre comment je peux créer des items par programmation et que au clic cela aille vers des pages ou signets ?

    En algo, ça donnerait :
    Si liste1 = 1 ET liste2 = 1 ALORS
    Crée menu “Item 1” lien “Page3”
    Crée menu “Item 2” lien “Page 18”
    Crée menu “Item 3” lien “Page 40”
    etc.

    Et que les menus se créent toujours de la même façon. Comme un sommaire en fait.
    Quelqu’un saurait-il m’aider et/ou me donner des pistes ?

    Merci d’avance de votre aide !

Affichage de 6 réponses de 1 à 6 (sur un total de 6)
  • Auteur
    Réponses
  • #68878
    Merlin
    Maître des clés

    Bonjour et bienvenue

    En JavaScript ça donne :

    if (this.getField(“LISTE1“).value == 1 && this.getField(“LISTE2“).value == 1) {
    this.getField(“LISTE3“).setItems(Item 1“, “this.pageNum = 0“],[“Item 2“, “this.pageNum = 17“], [“Item 3“, “this.pageNum = 39);
    }

    Tu sauras tout sur setItems en allant sur cette page :
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/Acro12_MasterBook/JS_API_AcroJS/Field_methods.htm?rhhlterm=setItems%20&rhsyns=%20#XREF_90526_setItems

    #68879
    Braindead
    Membre

    Bonjour Merlin,

    Merci pour ta réponse. Ca me donne une très bonne piste en effet.
    Mais j’aurais bien voulu que mon résultat se présente sous forme de sommaire et pas de liste. Manière que l’utilisateur puisse bien voir tous les choix qui s’offrent à lui.

    A moins que je puisse mettre la liste 3 de façon à ce qu’elle présente plusieurs résultats (je n’ai pas testé) ?

    Merci de ton aide en tout cas :)

    #68880
    Merlin
    Maître des clés

    Trop facile : il suffit d’utiliser une Zone de liste (listbox) au lieu d’une Liste déroulante (combobox), comme ces deux types de champs partagent presque toutes leurs propriétés le script ne change pas.

    #68881
    Braindead
    Membre

    OK en effet c’est simple vu comme ça :)

    J’ai mis en oeuvre tout ceci. Ci-joint mon fichier de test. Par contre, chez moi, au clic sur l’item de la liste 3 cela ne va pas à la page XXX.

    J’ai bien regardé la documentation et je ne vois pas. Faut-il que je récupère la valeur de la selection de la liste3 pour ensuite jouer une action pour changer de page (et quelle action…?) ?

    Merci encore de tes précieux conseils !

    #68882
    Merlin
    Maître des clés

    C’est parfois le problème avec les scripts non testés et non vérifiés postés sur les forums…  :siffle:

    Utilise plutôt ceci comme script :

    if (this.getField(“LISTE1”).value == 1 && this.getField(“LISTE1”).value == 1) {
    this.getField(“LISTE3”).setItems(“Item 1”, “1“],[“Item 2”, “18“], “Item 3”, “40);
    }

    Et place ce script en “Changement de sélection” dans la Zone de liste :

    if ( !event.willCommit && (event.changeEx != “”) ) {
    this.pageNum = Number(event.changeEx)-1;
    }

    Comme j’ai ajouté “-1” directement dans le script on peut utiliser directement le numéro de page voulu en valeur d’exportation.
    :Smiley03:

    #68883
    Braindead
    Membre

    C’est trop fort merci :)

    Bon j’ai un peu l’impression de t’avoir fait écrire tout le code … merci bcp de ton aide.

    Je partage le PDF final si cela peut en aider, on ne sait jamais

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