Donnez vie à vos documents numériques !
 

Listes déroulantes liées sur 3 niveaux

abracadabraPDF Forums PDF – Général Listes déroulantes liées sur 3 niveaux

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46074
    Clem14
    Membre

    Bonjour à tous,

    Je m’excuse par avance de créer une fois de plus un sujet sur les listes déroulantes liées. J’ai tenté à partir des postes existants de les adapter à ce dont j’ai besoin, mais en vain.

    voilà ce que j’ai fait pour le moment :

    – pour initier les listes

    Code:
    function Initialisation()
    {
    //On définit les tableaux en respectant l’arborescence des menus:
    ListeN1=new Array();
    ListeN2=new Array();
    ListeN3=new Array();
    //On définit les contenus des tableaux
    //niveau 1
    ListeN1=[« 1.PG1″, »2.PG2″, »3.PG3 »];

    //Niveau 2, définition dans l’ordre de la liste de niveau 1
    ListeN2[« 1.PG1 »]=[« 1.1Tranche_1″, »1.2Tranche_2″, »1.3Tranche_3″, »1.4Tranche_4″, »1.5Tranche_5″, »1.6Tranche_6″, »1.7Tranche_7″, »1.8Tranche_8 »];
    ListeN2[« 2.PG2 »]=[« 2.1Tranche_1″, »2.2Tranche_2″, »2.3Tranche_3″, »2.4Tranche_4″, »2.5Tranche_5″, »2.6Tranche_6″, »2.7Tranche_7″, »2.8Tranche_8 »];
    ListeN2[« 3.PG3 »]=[« 3.1Tranche_1″, »3.2Tranche_2″, »3.3Tranche_3″, »3.4Tranche_4″, »3.5Tranche_5″, »3.6Tranche_6 »];

    //Niveau 3, définition dans l’ordre de la liste de niveau 2 de PG1
    ListeN3[« 1.1Tranche_1 »]=[« 1.1.1Epis de protection », »1.1.2Quai Capitainerie », »1.1.3Place du 14 Juin », »1.1.4Grande Rue », »1.1.5Quai Ravitaillement », »1.1.6Canal du rond d’eau », »1.1.7Giscle », »1.1.8Avant port et passe d’entrée »];
    ListeN3[« 1.2Tranche_2 »]=[« 1.2.1Rue de l’Octogone », »1.2.2Rue de la tour »];
    ListeN3[« 1.3Tranche_3 »]=[« 1.3.1Rue des 2 Ports », »1.3.2Rue de l’île longue »];
    ListeN3[« 1.4Tranche_4 »]=[« 1.4.1Place du marché », »1.4.2Place de l’église »];
    ListeN3[« 1.5Tranche_5 »]=[« 1.5.1Place des artisans », »1.5.2Les fossés Est et Ouest »];
    ListeN3[« 1.6Tranche_6 »]=[« 1.6.1Rue du Septentrion »];
    ListeN3[« 1.7Tranche_7 »]=[« 1.7.1Rue u ponant », »1.7.2île du couchant »];
    ListeN3[« 1.8Tranche_8 »]=[« 1.8.1Rue des 2 îles : intérieur », »1.8.2Rue des 2 îles : occidental », »1.8.3île des pins », »1.8.4île verte »];

    //Niveau 3, définition dans l’ordre de la liste de niveau 2 de PG2
    ListeN3[« 2.1Tranche_1 »]=[« 2.1.1Rond d’eau », »2.1.2île des sables »];
    ListeN3[« 2.2Tranche_2 »]=[« 2.2.1Chantier naval », »2.2.2Rue des voiliers »];
    ListeN3[« 2.3Tranche_3 »]=[« 2.3.1Rue des 3 rives », »2.3.2Rue de la Giscle »];
    ListeN3[« 2.4Tranche_4 »]=[« 2.4.1île des 4 vents »];
    ListeN3[« 2.5Tranche_5 »]=[« 2.5.1île ronde », »2.5.2Ponton flottant île ronde »];
    ListeN3[« 2.6Tranche_6 »]=[« 2.6.1Rue de l’occident », »2.6.2Rue de l’éperon »];
    ListeN3[« 2.7Tranche_7 »]=[« 2.7.1île de la Désirade (Est) »];
    ListeN3[« 2.8Tranche_8 »]=[« 2.8.1Place de la Désirade », »2.8.2Rue du port sud « , »2.8.3Pontont flottant port sud », »2.8.4Place François Spoerry », »2.8.5Panne flottante François Spoerry », »2.8.6Battandaux Amont », »2.8.7Battandaux Aval »];

    //Niveau 3, définition dans l’ordre de la liste de niveau 2 de PG3
    ListeN3[« 3.1Tranche_1 »]=[« 3.1.1Ponant », »3.1.2Amphitrite 1″, »3.1.3Grimaldines 1″, »3.1.4Fer à Cheval »];
    ListeN3[« 3.2Tranche_2 »]=[« 3.2.1Marina Port Occidental »];
    ListeN3[« 3.3Tranche_3 »]=[« 3.3.1Grimaldines 3″, »3.3.2Port municipal », »3.3.3Grimaldines 2″, »3.3.4Colibri »];
    ListeN3[« 3.4Tranche_4 »]=[« 3.4.1Désirade Ouest », »3.4.2Désirade Nord/Quai Public »];
    ListeN3[« 3.5Tranche_5 »]=[« 3.5.1Amphitrite 2 »];
    ListeN3[« 3.6Tranche_6 »]=[« 3.6.1Grand Bassin : PG2/PG3 »];

    //Remplissage de la liste de niveau 1 (sélecteur de niveau supérieur)
    this.getField(« ListeNiveau1 »).clearItems();
    index=0;
    while(index {
    this.getField(« ListeNiveau1 »).insertItemAt(ListeN1[index],ListeN1[index],index)
    index=index+1;
    }
    //Fin remplissage Liste mère
    //Reset du menu secondaire
    ffille=this.getField(« ListeNiveau2 »);
    ffille.clearItems();

    //Remplissage de la liste de niveau 2 (sélecteur de niveau supérieur)
    this.getField(« ListeNiveau2 »).clearItems();
    index=0;
    while(index {
    this.getField(« ListeNiveau2 »).insertItemAt(ListeN2[index],ListeN2[index],index)
    index=index+1;
    }
    //Fin remplissage Liste fille
    //Reset du menu secondaire
    ffille=this.getField(« ListeNiveau3 »);
    ffille.clearItems();
    }

    – pour le remplissage fille 1 :

    Code:
    function RemplissageFille()
    {
    //Nom du sélecteur solliscité:
    NomSelecteur=event.target.name;
    ffille=this.getField(« ListeNiveau2 »);
    ffille.delay=true;
    ffille=this.getField(« ListeNiveau2 »);
    ffille.clearItems();
    index=0;
    try
    {
    while(index {
    ffille.insertItemAt(ListeN2[event.changeEx][index],ListeN2[event.changeEx][index],index)
    index=index+1;
    }
    ffille.currentValueIndices=0;
    ffille.delay=false;
    }
    catch(e)
    {
    app.alert(« Liste fille « +event.changeEx+ » non définie! »,1);
    }
    }

    Dans ma première liste j’ai 3 choix : PG1, PG2 et PG3, dans ma seconde j’ai plusieurs tranches en fonction dans la première, 8 pour PG1 et PG2 et 6 pour PG3 et dans ma dernière liste, j‘aimerai qu’il n’y ait que les choix correspondant à la combinaison des deux listes précédentes, exemple si je sélectionne PG1 et Tranche 1, qu’il ne m’affiche que les adresses sous la tranche 1

    D’avance merci !!!

Affichage de 12 réponses de 1 à 12 (sur un total de 12)
  • Auteur
    Réponses
  • #65777
    bebarth
    Maître des clés

    bonjour,
    Pourrais-tu poster un fichier exemple afin de faciliter la tâche !
    Merci.
    @+
    :bonjour:

    #65778
    Clem14
    Membre

    Bonjour,

    Je souhaiterai faire comme le fichier en PJ, avec à la place de luminaire A,B,C, mes 1PG1, 2PG2, 3PG3.
    Ensuite à la place de Item, avoir pour :
    – 1PG1 : de 1.1tranche1 à 1.8tranche8
    – 2PG2 : de 2.1tranche1 à 2.8tranche8
    – 3PG3 : de 3.1tranche1 à 3.6tranche6

    Et un Troisième niveau avec un/plusieurs choix par tranche; ex : pour la tranche 1 de PG1 j’ai 8 choix de rues possible. Dans mon message précédent, j’ai mis un screen d’une partie de la liste qui peut aider à visualiser je pense.
    Merci d’avance !

    #65779
    bebarth
    Maître des clés

    bonjour,
    Voici ce que j’ai fait.
    Dis-moi si je n’ai pas tout compris !
    @+
    :bonjour:

    #65780
    Clem14
    Membre

    Salut bebarth,

    C’est exactement ça !!! Merci beaucoup!

    Bonne journée  :bonjour:

    #65781
    Clem14
    Membre

    Juste une petite dernière question !

    J’ai intégré ce que tu m’as fait à mon formulaire en fusionnant mon pdf et le tiens, puis placé les cellules à l’endroit souhaité. Comme je fais pas mal de modification, j’enregistre plusieurs versions, or je m’aperçois sur ma dernière version que lorsque j’essaye de sélectionner la première liste, j’ai un message d’erreur « Liste fille 1.PG1 non définie! »  et ça pour PG1, 2 ou 3.

    Est-ce que tu as une idée d’où cela peut provenir?

    Je te mets mon formulaire complet en PJ, ce sera plus simple.

    Merci d’avance !

    #65782
    bebarth
    Maître des clés

    Regarde sur ton précédent fichier ou sur le miens, il y a un script d’ouverture de page…
    @+
    :bonjour:

    #65783
    bebarth
    Maître des clés

    …avec le fichier c’est peut-être mieux !
    @+
    :bonjour:

    #65784
    Clem14
    Membre

    Autant pour moi… Merci :)

    #65785
    Clem14
    Membre

    A tout hasard est-ce que tu sais si c’est possible de remplir ma case numéro de fiche avec les 3 chiffres devant le nom de secteur ? J’avais en tête de mettre pour chaque secteur juste le numéro « 1.1.2 » par exemple dans la case valeur d’exportation pour à partir de la case valeur d’exportation remplir ma case numéro fiche.
    J’ai fait pas mal de recherche sur le forum mais sans succès…

    #65786
    bebarth
    Maître des clés

    en script de calcul personnalisé du champ « numero » tu écris :

    Code:
    this.event.target.value=this.getField(« ListeNiveau3 »).value.substr(0, 5);

    Attention :
    (0, 5) signifie entre le premier et le 6ème caractère, soient les 5 premiers (ex. 1.2.3). dans ton cas ça fonctionne toujours, mais pour d’autres cas il faudrait adapter.
    @+
    :bonjour:

    #65787
    Merlin
    Maître des clés

    Bonjour.

    Dans toutes les listes déroulantes en général, mais surtout dans ces trois là en particulier il vaut mieux cocher : Propriétés de la liste déroulante : Options : Valider la valeur sélectionnée immédiatement

    Ça va changer leur comportement, qui sera plus « user friendly ».
    :Smiley15:

    #65788
    Clem14
    Membre

    Bonjour,

    Merci Merlin pour l’info !

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