Comment saisir et transmettre les données de la List Box ?Bonjour,
Je voudrais fournir une liste de paramètres ou de variables au niveau de la fenêtre (par exemple copiés à partir d'Excel) et transmettre cette liste (par exemple en cliquant sur OK) plus loin pour créer une autre liste pour une requête SQL. Puis-je le faire avec un certain type de zone de liste (quelque chose comme dans l'image ci-dessous) ? Quelles autres méthodes pourraient être utilisées pour le faire? Meilleures salutations.

ScriptRe : Comment saisir et transmettre les données de la List Box ?Quelques questions/idées pour vous lancer :
- Voulez-vous que l'utilisateur sélectionne les numéros de série intéressants dans une liste pré-créée ? Vous pouvez utiliser la zone de liste
- Souhaitez-vous que l'utilisateur puisse copier-coller des numéros de série à partir d'un emplacement qui seront convertis en requête SQL ? Vous pouvez utiliser Text Edit Box avec une fonction d'analyse.
- Peut-être les deux ci-dessus ? J'essaierais très probablement d'éviter cela, car si l'utilisateur copie et colle des valeurs de quelque part, il peut déjà sélectionner ce qu'il souhaite inclure.
- Voulez-vous utiliser le modal ?
Vérifiez l'index de script pour : Modal (comment créer une fenêtre modale), List Box, Text Edit Box, Concat Items (comment convertir une liste JMP en chaîne)
Exemple rapide avec la zone de liste qui définira la valeur de la zone de texte sous le bouton OK et imprimera les valeurs sélectionnées sous forme de liste à enregistrer lorsque vous appuyez sur ok :
Names Default To Here(1);
serialList = {"a1", "b2", "c3", "d4"};
win2 = New Window("Example",
V List Box(
lb = List Box(serialList, width(200), nlines(6)),
Button Box("OK", Show(lb << get selected); tb << Set Text(char(lb << get selected))),
tb = Text Box("");
)
);

Re : Comment saisir et transmettre les données de la List Box ?Bonjour,
merci pour les suggestions. J'aimerais pouvoir copier les numéros de série de quelque part, puis les transmettre plus loin à l'aide de la fonction d'analyse, donc l'option 2 et avec la fenêtre modale. Je vais essayer avec Text Edit Box.
Meilleures salutations
Re : Comment saisir et transmettre les données de la List Box ?Ci-dessous un exemple. Créez une fonction (parsePaste dans l'exemple) pour gérer l'entrée et apporter les modifications souhaitées : supprimer les doublons, remplacer les modifications de ligne par quelque chose, supprimer les séparateurs dupliqués... Après avoir appuyé sur OK, cela renverra une chaîne, puis vous pourrez modifier la chaîne renvoyée pour l'adapter à votre SQL (Words() et Concat Items() comme exemples).
Names Default To Here(1);
parsePaste = function({tempStr}, {Default Local},
tempStr = Regex(tempStr, "\r\n", ",", GLOBALREPLACE); //replace row changes with ,
tempStr = Substitute(tempStr, ",,", ","); //replace double ,, with one ,
tempStr = Regex(tempStr, ",$", "", GLOBALREPLACE); //remove , if last character
return(tempStr);
);
win2 = New Window("Example", << Modal,
V List Box(
Text Box("Add Serialnumbers:"),
teb = Text Edit Box("", << set width(200), << set nlines(3),
<< Set Function(Function({this},
this << set text(parsePaste(this << get text));
))
),
H List Box(
Button Box("OK", listStr = teb << get text),
Button Box("Cancel")
)
)
);
show(listStr);
temp = Words(listStr, ",");
temp = "'" || Concat Items(temp, "','") ||"'";
show(temp);