abracadabraPDF › Forums › PDF – Général › Liste des éléments dans la console
- Ce sujet contient 13 réponses, 3 participants et a été mis à jour pour la dernière fois par  jctremblay, le il y a 2 années et 7 mois. jctremblay, le il y a 2 années et 7 mois.
- 
		CréateurSujet
- 
		28 mars 2023 à 18:29 #72753 jctremblayMaître des clés jctremblayMaître des clésBonjour, 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! 
- 
		CréateurSujet
- 
		AuteurRéponses
- 
		
			
				
28 mars 2023 à 20:48 #72754 MerlinMaître des clés MerlinMaître des clésBonjour 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));28 mars 2023 à 20:59 #72755 jctremblayMaître des clés jctremblayMaître des clésBonjour Merlin, J’obtiens seulement un undefined dans la console. Comment spécifier un champ de liste en particulier? 28 mars 2023 à 21:56 #72756 jctremblayMaître des clés jctremblayMaître des clésEn 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);
 }28 mars 2023 à 22:14 #72757 jctremblayMaître des clés jctremblayMaître des clésPour ê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. 29 mars 2023 à 01:40 #72758 jctremblayMaître des clés jctremblayMaître des clésJ’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);
 }29 mars 2023 à 08:51 #72759 MerlinMaître des clés MerlinMaître des clésOups, dans mon script il manque effectivement la définition de « f ». 1000 excuses. 29 mars 2023 à 14:11 #72760 jctremblayMaître des clés jctremblayMaître des clésAucun 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’exportationvar 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));
 }30 mars 2023 à 13:17 #72763 bebarthMaître des clés bebarthMaître des clésbonjour, 
 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");
 }
 }@+ 
 😎30 mars 2023 à 13:30 #72764 jctremblayMaître des clés jctremblayMaître des clésOh 😯! C’est la classe comme d’habitude… merci! Je remarque que je peux le faire pour les liste d’option en remplaçant comboboxparlistboxen début de script. Serait-il possible d’avoir les deux types de liste dans un seul script?30 mars 2023 à 13:57 #72767 bebarthMaître des clés bebarthMaître des clésil suffit d’écrire : 
 …
 if (this.getField(this.getNthFieldName(i)).type== »combobox » || this.getField(this.getNthFieldName(i)).type== »listbox ») lesElements.push(this.getNthFieldName(i));
 …@+ 
 😎30 mars 2023 à 13:59 #72768 bebarthMaître des clés bebarthMaître des clés…et si on veut être perfectionniste il faut modifier l’alerte et le message affiché dans la console !!! @+ 
 😎30 mars 2023 à 17:51 #72774 bebarthMaître des clés bebarthMaî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");
 }
 }@+ 
 😎30 mars 2023 à 18:26 #72775 jctremblayMaître des clés jctremblayMaître des clésMerci! 😉 
- 
		AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
