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 8 mois.
-
CréateurSujet
-
28 mars 2023 à 18:29 #72753
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é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é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é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é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é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ésOups, dans mon script il manque effectivement la définition de « f ».
1000 excuses.
29 mars 2023 à 14:11 #72760
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é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é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é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…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…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ésMerci! 😉
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
