Donnez vie à vos documents numériques !
 

Liste des éléments dans la console

abracadabraPDF Forums PDF – Général Liste des éléments dans la console

  • Créateur
    Sujet
  • #72753
    jctremblay
    Participant

    Bonjour,

    Avec ceci dans un bouton je peux copier la valeur actuelle d’un champ de liste.

    console.show();
    console.clear();
    var maListe=this.getField("list").value.split("\r");
    console.println(maListe);

    Comment faire pour obtenir la liste complète des éléments de ma liste dans la console et non pas celui sélectionné? merci!

     

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

    Bonjour Jean-Claude

     

    Essaie ça dans la console :

    for (var i=0; i < f.numItems; i++) console.println(f.getItemAt(i,true) + ": " + f.getItemAt(i,false));

    #72755
    jctremblay
    Participant

    Bonjour Merlin,

    J’obtiens seulement un undefined dans la console. Comment spécifier un champ de liste en particulier?

    #72756
    jctremblay
    Participant

    En passant avec ceci j’obtiens les valeurs des items de la liste. J’ai besoin d’obtenir les éléments (items)…

    var listBoxField = this.getField("list");
    var numItems = listBoxField.numItems;

    for (var i = 0; i < numItems; i++) {
    var item = listBoxField.getItemAt(i);
    var displayText = item.toString();
    console.println(displayText);
    }

     

    #72757
    jctremblay
    Participant

    Pour être plus précis… le code que j’ai mis va fonctionner SEULEMENT si les valeurs d’exportation sont vides. À ce moment je vais obtenir les éléments. Probablement, car les valeurs d’exportations utilisent le nom des éléments s’ils sont vides.

    #72758
    jctremblay
    Participant

    J’y suis arrivé…

    console.show();
    console.clear();
    var field = this.getField("list");
    var numItems = field.numItems;
    for (var i = 0; i < numItems; i++) {
    var displayValue = field.getItemAt(i, false);
    console.println(displayValue);
    }

    #72759
    Merlin
    Maître des clés

    Oups, dans mon script il manque effectivement la définition de “f”.

    1000 excuses.

    #72760
    jctremblay
    Participant

    Aucun souci… 😀.

    Au final je l’ai modifié avec un app.response(); pour pouvoir l’executer sur une liste de mon choix.
    J’obtiens dans ma console la liste des: Éléments – Valeur d’exportation

    var fL = app.response();
    var f = this.getField(fL);
    var numItems = f.numItems;
    console.clear();
    console.show();
    for (var i=0; i < f.numItems; i++) {
    console.println(f.getItemAt(i,false) + " - " + f.getItemAt(i,true));
    }

    #72763
    bebarth
    Maître des clés

    bonjour,
    Je suis un peu à la bourre sur ce post, mais voici un script que j’avais écrit il y a quelques temps sur le même sujet.
    Le script retourne une boite de dialogue avec le nom de tous les menus déroulants (ça évite d’entrer un nom incorrect) puis liste tous les éléments et leur valeur d’exportation.
    console.clear();
    console.show();
    var lesElements=[]
    for (var i=0; i<this.numFields; i++) {
    if (this.getField(this.getNthFieldName(i)).type=="combobox") lesElements.push(this.getNthFieldName(i));
    }
    if (!lesElements.length) app.alert("Il n'y a pas de menu d\u00E9roulant dans ce document.",3);
    else {
    lesElements.unshift("- S\u00E9lectionnez -");
    var listeElements="var laListe \= \{";
    for (var j=0; j<lesElements.length; j++) listeElements+="\""+lesElements[j]+"\": "+(-1*(j+1)).toString()+",";
    var listeElements=listeElements.substring(0, listeElements.length-1);
    listeElements+="\}";
    eval(listeElements);
    var bDialog={
    DoDialog: function(){return app.execDialog(this);},
    initialize: function(bDialog) {this.loadDefaults(bDialog)},
    validate: function(bDialog) {
    results=bDialog.store();
    oRslt=bDialog.store();
    var listeElements=bDialog.store()["LIST"];
    testOK=1;
    for (var j in listeElements) {
    if (listeElements[j]>0) {
    valItem=listeElements[j];
    if (valItem==1) testOK=0;
    }
    }
    var alertReturn=(testOK);
    if(!alertReturn) app.alert("\nVeuillez s\u00E9lectionner un menu d\u00E9roulant.");
    return alertReturn;
    },
    loadDefaults: function (bDialog) {
    bDialog.load({LIST: laListe,});
    },
    description: {
    name: "Dialog",
    align_children: "align_top",
    elements: [
    {
    type: "view",
    align_children: "align_fill",
    elements: [
    {
    type: "popup",
    item_id: "LIST",
    width: 120,
    },
    {
    alignment: "align_right",
    type: "ok_cancel",
    },
    ]
    },
    ]
    }
    };
    if("ok"==bDialog.DoDialog()) {
    var nomChamp=lesElements[valItem-1];
    var f=this.getField(nomChamp);
    var numItems=f.numItems;
    console.println("***** Menu d\u00E9roulant \""+nomChamp+"\" *****\r\u00C9l\u00E9ment -> Valeur d'exportation");
    for (var i=0; i<f.numItems; i++) {
    console.println("– "+f.getItemAt(i,false)+" -> "+f.getItemAt(i,true));
    }
    console.println("**********************************\r");
    }
    }

    @+
    😎

    #72764
    jctremblay
    Participant

    Oh 😯!  C’est la classe comme d’habitude… merci!

    Je remarque que je peux le faire pour les liste d’option en remplaçant combobox par listbox en début de script. Serait-il possible d’avoir les deux types de liste dans un seul script?

    #72767
    bebarth
    Maître des clés

    il suffit d’écrire :

    if (this.getField(this.getNthFieldName(i)).type==”combobox” || this.getField(this.getNthFieldName(i)).type==”listbox”) lesElements.push(this.getNthFieldName(i));

    @+
    😎

    #72768
    bebarth
    Maître des clés

    …et si on veut être perfectionniste il faut modifier l’alerte et le message affiché dans la console !!!

    @+
    😎

    #72774
    bebarth
    Maître des clés

    …comme ça !

    console.clear();
    console.show();
    var lesElements=[]
    for (var i=0; i<this.numFields; i++) {
    if (this.getField(this.getNthFieldName(i)).type=="combobox" || this.getField(this.getNthFieldName(i)).type=="listbox") lesElements.push(this.getNthFieldName(i));
    }
    if (!lesElements.length) app.alert("Il n'y a ni menu d\u00E9roulant ni zone de liste dans ce document.",3);
    else {
    lesElements.unshift("- S\u00E9lectionnez -");
    var listeElements="var laListe \= \{";
    for (var j=0; j<lesElements.length; j++) listeElements+="\""+lesElements[j]+"\": "+(-1*(j+1)).toString()+",";
    var listeElements=listeElements.substring(0, listeElements.length-1);
    listeElements+="\}";
    eval(listeElements);
    var bDialog={
    DoDialog: function(){return app.execDialog(this);},
    initialize: function(bDialog) {this.loadDefaults(bDialog)},
    validate: function(bDialog) {
    results=bDialog.store();
    oRslt=bDialog.store();
    var listeElements=bDialog.store()["LIST"];
    testOK=1;
    for (var j in listeElements) {
    if (listeElements[j]>0) {
    valItem=listeElements[j];
    if (valItem==1) testOK=0;
    }
    }
    var alertReturn=(testOK);
    if(!alertReturn) app.alert("\nVeuillez s\u00E9lectionner un menu d\u00E9roulant.");
    return alertReturn;
    },
    loadDefaults: function (bDialog) {
    bDialog.load({LIST: laListe,});
    },
    description: {
    name: "Dialog",
    align_children: "align_top",
    elements: [
    {
    type: "view",
    align_children: "align_fill",
    elements: [
    {
    type: "popup",
    item_id: "LIST",
    width: 120,
    },
    {
    alignment: "align_right",
    type: "ok_cancel",
    },
    ]
    },
    ]
    }
    };
    if("ok"==bDialog.DoDialog()) {
    var nomChamp=lesElements[valItem-1];
    var f=this.getField(nomChamp);
    var numItems=f.numItems;
    if (f.type=="combobox") var leType="Menu d\u00E9roulant";
    else var leType="Zone de liste";
    console.println("***** "+leType+" \""+nomChamp+"\" *****\r\u00C9l\u00E9ment -> Valeur d'exportation");
    for (var i=0; i<f.numItems; i++) {
    console.println("– "+f.getItemAt(i,false)+" -> "+f.getItemAt(i,true));
    }
    console.println("**********************************\r");
    }
    }

    @+
    😎

    #72775
    jctremblay
    Participant

    Merci! 😉

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