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.
-
CréateurSujet
-
28 mars 2023 à 18:29 #72753
jctremblay
Maî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
Merlin
Maî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 #72755jctremblay
Maî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 #72756jctremblay
Maî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 #72757jctremblay
Maî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 #72758jctremblay
Maî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 #72759Merlin
Maître des clésOups, dans mon script il manque effectivement la définition de “f”.
1000 excuses.
29 mars 2023 à 14:11 #72760jctremblay
Maî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 #72763bebarth
Maî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 #72764jctremblay
Maî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
combobox
parlistbox
en début de script. Serait-il possible d’avoir les deux types de liste dans un seul script?30 mars 2023 à 13:57 #72767bebarth
Maî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 #72768bebarth
Maî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 #72774bebarth
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");
}
}
@+
😎30 mars 2023 à 18:26 #72775jctremblay
Maître des clésMerci! 😉
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.