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 1 année et 7 mois.
-
CréateurSujet
-
28 mars 2023 à 18:29 #72753jctremblayParticipant
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!
-
CréateurSujet
-
AuteurRéponses
-
28 mars 2023 à 20:48 #72754MerlinMaî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));
28 mars 2023 à 20:59 #72755jctremblayParticipantBonjour Merlin,
J’obtiens seulement un undefined dans la console. Comment spécifier un champ de liste en particulier?
28 mars 2023 à 21:56 #72756jctremblayParticipantEn 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 #72757jctremblayParticipantPour ê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 #72758jctremblayParticipantJ’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 #72759MerlinMaître des clésOups, dans mon script il manque effectivement la définition de “f”.
1000 excuses.
29 mars 2023 à 14:11 #72760jctremblayParticipantAucun 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 #72763bebarthMaî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 #72764jctremblayParticipantOh 😯! 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 #72767bebarthMaî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 #72768bebarthMaî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 #72774bebarthMaî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 #72775jctremblayParticipantMerci! 😉
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.