Donnez vie à vos documents numériques !
 

Lien bouton radio et liste

abracadabraPDF Forums PDF – Général Lien bouton radio et liste

  • Créateur
    Sujet
  • #71426
    WilliS4R
    Participant

    Bonjour à tous,

    Je suis un débutant sur Adobe pro et j’ai besoin de vos éclairages..

    Après plusieurs tentatives de codage … je déclare forfait ! Help

    Mon besoin :

    J’ai une premiere liste déroulante liée avec une deuxième. Je souhaite après avoir selectionné la ligne dans la deuxième liste dérouante, le visualisé au travers d”un bouton radio qui est lié avec la liste dérouante du champ suivant.

    1/ Sélection du champ 1–> Ça c’est OK
    2/ Sélection du champ 2 lié –> Ça c’est OK
    2/ Les boutons sont alors enfoncés
    3/ depuis chaque bouton enfoncé, afficher un texte dans le champ 3 qui est une liste déroulante (pour chaque bouton)
    Nota : je ne peux pas m’affranchir de l’étape 2 car les textes à insérer en champ 3 sont trop long et on atteint la limite de
    l’éditeur… si je les mets dans l’éditeur du champ2.

     

    J’espère avoir été clair !

    Mon fichier en pj

    Merci par avance,

    WR

    Attachments:
    You must be logged in to view attached files.
Affichage de 36 réponses de 1 à 36 (sur un total de 36)
  • Auteur
    Réponses
  • #71428
    bebarth
    Maître des clés

    bonjour,
    Voici une possibilité, en script de calcul du champ3 :
    if (this.getField("Champ2").value!="") {
    this.getField("Metiers").value=this.getField("Champ2").value;
    var liste=["- Choisissez -"];
    for (var i=0; i<3; i++) liste.push(this.getField("Champ2").value+" - Élément "+(i+1));

    } else {
    var liste=[""];
    this.getField("Metiers").value="Off";
    }
    event.target.setItems(liste);

    Attention à ne pas mettre de caractères accentués dans le nom des champs !

    Désolé pour les délais de réponse, mais je suis “ENCORE” (et toujours) en vacances jusqu’à fin août !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #71430
    WilliS4R
    Participant

    Bonjour,

    Un grand merci pour cette réponse, surtout en  période de vacances.

    A la lecture du code proposé, je comprends que je n’ai pas été assez explicite.

    Je reformule : Dans le premier champ, j’ai deux options “Technique” et “non technique”, Dans le second champ “champ2”, j’ai 12 métiers pour “Technique” et 6 métiers “non technique”. Pour chaque métier choisi dans le champ2, j’ai entre 60 et 80 caractérisations (par métiers) à afficher dans une liste déroulante (dans le champ 3) qui peuvent s’écrirent sur une à trois lignes.

    Si je conserve, le code présent dans le champ 1 pour passer du champ2 au champ3, j’atteints les limites de caractères dans l’éditeur de script.

    J’avais donc dans l’idée pour contourner cette limitation de créer les boutons (12+6) qui contiendraient chacune des lignes à afficher dans le champ3. Le boutons étant in fine masqué à l’utilisateur.

    J’espère avoir été plus clair.

     

    #71431
    bebarth
    Maître des clés

    bonjour,

    Ne serait-il pas judicieux d’envisager de placer toutes ces données dans une feuille de tableur (Excel par exemple) au format csv et de joindre le fichier au formulaire ?

    @+
    😎

    #71432
    WilliS4R
    Participant

    Bonjour,

    La solutions  de joindre un .csv n’est hélas pas possible.

    Après quelques itérations, j’ai réussi à faire apparaître la liste dans le champ 3, en écrivant les listes dans le script de document. Le problème de limitation est résolu.

    Problème, si j’ai la bonne liste sélectionnée, je n’arrive pas à selectionner la ligne souhaitée. Il me manque un bout de code. J’avance…

    La solution est-elle dans la prochaine réponse 🙂

    MErci pour le temps passé à me lire.

     

     

    Attachments:
    You must be logged in to view attached files.
    #71434
    Merlin
    Maître des clés

    Bonjour

     

    Dans le champ “champ3” tu as mis le script en script de calcul, il faut le placer en script de validation.

     

    Attachments:
    You must be logged in to view attached files.
    #71436
    WilliS4R
    Participant

    Bonsoir,

    Merci de prendre sur votre temps pour trouver une issue à mon besoin.

    L’option proposée par Merlin, rend le pdf instable. Les réponses sont erronnées. Dans la V1, le cheminement est correct mais la prise en compte de la valeur dans le champ3 n’est pas effective. Je pense que les codes réalisés ne sont pas adaptés (trop de boucle if qui appelle des listes dans le script de document).

    Existe-t-il une autre option de codage pour appeler mes listes présentes dans le scrip de document, avec un lien mere-fille (champ2-champ3)

    A votre écoute,

    W

    Attachments:
    You must be logged in to view attached files.
    #71438
    Merlin
    Maître des clés

    Je rentre juste de vacances et je n’ai pas tout suivi.

    Essaye d’adapter le document ci-joint, les listes sont constituées dans le script de document “Initialisation”.

     

    Attachments:
    You must be logged in to view attached files.
    #71440
    bebarth
    Maître des clés

    bonjour,

    C’est une bonne chose de mettre le code en script de validation, mais il faut dans ce cas le mettre pour “Champ2” et non pour “champ3″…

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #71442
    WilliS4R
    Participant

    Bonsoir à vous,

    Les itérations se poursuivent 😏.

    Le code communiqué par Merlin est fonctionnel mais vu la longueur des listes, le temps de latence est trop long. Je vous remets le pdf avec les codes qui me permettent d’aller jusqu’à l’affichage dans caractérisation, mon seul problème est son activation dans ce champ.

     

    Je renouvelle toute ma gratitude pour vos conseils avisés et votre disponibilité.

     

    BW.

     

     

    Attachments:
    You must be logged in to view attached files.
    #71444
    WilliS4R
    Participant

    Pour information, je n’ai aucune latence pour afficher toutes les listes (déjà chargée dans ma version de travail).

    #71445
    bebarth
    Maître des clés

    As-tu vu ma dernière réponse ?

    En ce qui me concerne il faudra attendre le 30 août pour une réponse plus approfondie… mais je ne sais pas s’il est très judicieux d’avoir un menu déroulant avec 80 éléments !

    @+
    😎

    #71446
    WilliS4R
    Participant

    Je commencerai par un énorme Mea culpae 🙂

    J’ai dû mal tester la proposition envoyée par Bebarth, ce matin au boulot….

    Car at home, elle fonctionne parfaitement ! Je testerai demain matin en grandeur nature (cad avec toutes les listes 🙂 .Mais, je suis très confiant !

    A la lecture des nombreux postes, j’avais la certitude que vous seriez d’excellents conseils. Bravo à vous deux ! J’aimerai pouvoir vous remercier : l’adresse indiquée sur votre site est bien d’actualité ?

    Je cloturerai demain ce poste si tout est ok. Ce soir, je suis heureux ! c’est grâce à vous !

    NB : Je l’accorde les listes sont hélas trop longues mais c’est une donnée d’entrée. Je pense que les utilisauteurs finaux devraient revoir ça 🙂

    #71447
    WilliS4R
    Participant

    Bonjour,

    Les tests ont été réalisés avec succès sur le pdf réel avec toutes les listes ( 20 contenant chacune 10 à 80 lignes…) … Ça marche parfaitement et sans lag 🙂

     

    Un grand merci !

    Dossier clos.

    #71448
    Merlin
    Maître des clés

    👍

    #71719
    WilliS4R
    Participant

    Bonjour Messieurs,

    Encore et toujours besoin de vos éclairages 🙂

    Je croyais mon problème réglé depuis longtemps sur le lien entre les listes déroulantes grace au dernier formulaire (cf. pj ). Mais après exploitation de mon formulaire, je me rends compte que les choix faits dans les listes déroulantes ne sont pas pris en compte à l’enregistrement du formulaire. Manquerait-il une ligne de code ?

    Merci par avance pour votrez aide précieuse

    William,

    Attachments:
    You must be logged in to view attached files.
    #71721
    destylast
    Participant

    Bonjour,

    je viens de faire un test et cela fonctionne seulement avec la liste déroulante “NON TECHNIQ” et pas en totalité  je pense que cela viens de ton champ1(script)

    #71725
    WilliS4R
    Participant

    Hello,

    Après relecture de nombreux échanges (merci encore à Bebarth et Merlin :)),  j’ai corrigé le formulaire. Merci beaucoup,

    A toutes fins utiles, le fichier en pj. opérationnel !

     

    Attachments:
    You must be logged in to view attached files.
    #71727
    destylast
    Participant

    je confirme tout fonctionne bien 👍

    #71728
    WilliS4R
    Participant

    J’ai été trop vite 🙁

    Ca ne marche pas !

    Je repars du fichier en pièce jointe,

    Pourriez-vous m’aider pour trouver une solution pour conserver les données saisies lors de l’enregistrement

     

     

    Attachments:
    You must be logged in to view attached files.
    #71730
    destylast
    Participant

    je pense que cela viens de ta boucle car il ne prends en compte que le premier choix de chaque liste.

    #71732
    bebarth
    Maître des clés

    bonjour,
    Désolé, mais pour l’instant après un essai rapide, je ne comprends pas ce qui ne fonctionne pas…

    @+
    😎

    #71733
    WilliS4R
    Participant

    Peut-être un éclairage pour les experts, dans le fichier BB-1; lorsqu”on saisit l’item dans le champ1 deux fois d’affilée , ça à l’air de fonctionner…

    Je m’en remets à votre expertise 🙂

    #71738
    bebarth
    Maître des clés

    Je re-regarderai demain car pour l’instant je ne comprends toujours pas !
    Qu’est-ce qui devrait se passer et qui ne fonctionne pas ???

    @+
    😎

    #71739
    WilliS4R
    Participant

    Bonjour,

    Pour répondre à Bebarth. Quand on sélectionne le champ 1 puis 2 et 3, et qu’on enregistre le fichier. Si on le réouvre les choix faits précédemment ne sont pas pris en compte 🙁.

     

    #71740
    Merlin
    Maître des clés

    C’est parce-que les listes sont initialisées à l’ouverture du document, donc réinitialisées à chaque ouverture du document.

    Il faut soit placer l’initialisation des listes sous condition, soit utiliser un bouton ou autre action pour les initialiser.

    #71742
    WilliS4R
    Participant

    Merci pour cette approche, on constate que seul le champ 1 est mémorisé. Pour initialiser j’ai bien un bouton reset avec le cola fonction this.resetorm().

    Mais je ne connais pas comment empêcher l’ initialisation des champs 2 et 3.

    Help 😱

     

    #71765
    bebarth
    Maître des clés
    bonjour,

    C’est parce-que les listes sont initialisées à l’ouverture du document, donc réinitialisées à chaque ouverture du document.

    Le script Champ1 est placé en validation donc exécuté à l’ouverture du document.

    Je reconnais ce script et me semble que je l’avais adapté d’après un que tu m’avais fourni. Personnellement je n’écris pas tout à fait comme ça…
    Ce weekend, j’essayerai de le réécrire à ma manière en script de touches personnalisé (c’est comme ça que je fais d’habitude).

    @+
    😎

    #71798
    destylast
    Participant

    Bonjour,

    Voici ton fichier de repris et tout fonctionne grâce en grande parti a bebarth un très grand aide même indispensable.

    Attachments:
    You must be logged in to view attached files.
    #71810
    WilliS4R
    Participant

    Bonjour à tous,

    Ca marche ! super top !

    Je suis très heureux que vous ayez pu résoudre le problème. Mon formulaire est quasi finalisé. J’ai souhaité réutilisé la logique mis en place pour d’autres champs dans mon formulaire qui appelent la même logique de menu déroulant (avec les mêmes menus déroulants). Hélas, je me suis cassé les dents toute l’après-midi. Il semble que la fonction “event.WillCommit” sur d’autres champs impacte le code…

    Désolé pour mon faible niveau :). Même si je progresse, je suis encore loin d’être autonome 🙂

    En pièce jointe, le code que j’ai tenté de mettre à jour.

    C’est ma dernière requête promis !

    W

     

    Attachments:
    You must be logged in to view attached files.
    #71815
    bebarth
    Maître des clés

    bonjour,
    Si avec le menu champ4 tu veux remplir le champ5, il faut utiliser ton autre fonction.
    Donc if (!event.willCommit) affichage_1(event.target.name);

    @+
    😎

    #71816
    WilliS4R
    Participant

    Merci Bebarth pour ta réponse. Je tente et je vous dis si tout est ok.

    Bonne soirée,

    W

    #71831
    destylast
    Participant

    Bonjour,

    Voici ton fichier de repris vois si cela te va.

    Attachments:
    You must be logged in to view attached files.
    #71833
    WilliS4R
    Participant

    Bonjour,

    Un grand bravo. Aujourd’hui, vous avez fait un homme heureux 👌.

    C’est juste parfait.

    Un très grand merci pour votre disponibilité et l’attention portée à mon problème.

    Bonne journée,

    #71834
    bebarth
    Maître des clés
    bonjour,

    Un grand bravo. Aujourd’hui, vous avez fait un homme heureux 👌.

    Certaines fois, il suffit de pas grand chose !

    C’est juste parfait.

    C’est exact !
    En me relisant, je viens de m’apercevoir que la variable “menuDeroulant” de l’exemple précédent ne sert à rien… J’avais certainement dû modifier mon script et oublié de la retirer de la fonction !
    Du coup la fonction s’écrit :
    function affichage() {
    this.getField("champ2").display=display.visible;
    switch (event.changeEx) {
    case "0":
    var leMenu=[
    ["-SELECTIONNER-",0],
    ["Métier3",["-SELECTIONNER-","Cheval","Chien"]],
    ];
    break;
    case "1":
    var leMenu=[
    ["-SELECTIONNER-",0],
    ["Métier1",["-SELECTIONNER-","Maison","Balcon"]],
    ["Métier2",["-SELECTIONNER-","Maison","Voiture"]],
    ];
    break;
    default:
    var leMenu=[""];
    this.getField("champ2").display=display.hidden;
    this.getField("champ3").display=display.hidden;
    }
    this.getField("champ2").setItems(leMenu);
    }
    et pour l’appeler :
    if (!event.willCommit) affichage();

    Maintenant, si on veut approfondir l’apprentissage en JavaScript, on peut n’utiliser qu’une seule fonction avec plusieurs variables.
    Ici le script n’est pas très long ce n’est donc pas très grave, mais s’il l’était ce serait plus intéressant.
    Si par exemple le contenu des menus déroulants est identique, on peut écrire :
    // Fontion à 2 variables
    function affichage(menuDeroulant2,menuDeroulant3) {
    this.getField(menuDeroulant2).display=display.visible;
    switch (event.changeEx) {
    case "0":
    var leMenu=[
    ["-SELECTIONNER-",0],
    ["Métier3",["-SELECTIONNER-","Cheval","Chien"]],
    ];
    break;
    case "1":
    var leMenu=[
    ["-SELECTIONNER-",0],
    ["Métier1",["-SELECTIONNER-","Maison","Balcon"]],
    ["Métier2",["-SELECTIONNER-","Maison","Voiture"]],
    ];
    break;
    default:
    var leMenu=[""];
    this.getField(menuDeroulant2).display=display.hidden;
    this.getField(menuDeroulant3).display=display.hidden;
    }
    this.getField(menuDeroulant2).setItems(leMenu);
    }
    // Script pour champ1
    if (!event.willCommit) affichage("champ2","champ3");
    // Script pour champ4
    if (!event.willCommit) affichage("champ5","champ6");
    Une seule fonction commune et les 2 variables sont définies lorsqu’on appelle cette fonction…

    @+
    😎

    • Cette réponse a été modifiée le il y a 1 année et 5 mois par bebarth.
    • Cette réponse a été modifiée le il y a 1 année et 5 mois par bebarth.
    Attachments:
    You must be logged in to view attached files.
    #71839
    Merlin
    Maître des clés

    😍

    #71840
    destylast
    Participant

    bravo je n’ai pas de mot 👍  après pas simple d’avoir un code propre au début  quand on débute mais pour moi avant tout est que cela soit fonctionnel même si le code est limite.

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