Comment saisir et transmettre des données depuis une zone de liste ?Bonjour,
Je voudrais fournir une liste de paramètres ou de variables du niveau de la fenêtre (par exemple copiés depuis Excel) et transmettre cette liste (par exemple en cliquant sur OK) pour créer une autre liste pour une requête SQL. Puis-je faire cela avec un type de zone de liste (quelque chose comme dans l'image ci-dessous) ? Quelles autres méthodes pourraient être utilisées pour y parvenir ? Cordialement.

Accès aux donnéesRe : Comment saisir et transmettre des données depuis une List Box ?Bonjour, désolé pour la réponse tardive. C'est exactement ce que je voulais mettre en œuvre. Merci beaucoup. Cordialement
Re : Comment saisir et transmettre des données depuis une List Box ?Ci-dessous un exemple. Créez une fonction (parsePaste dans l'exemple) pour gérer l'entrée et effectuer les modifications que vous souhaitez : supprimer les doublons, remplacer les modifications de ligne par quelque chose, supprimer les séparateurs en double... Après avoir appuyé sur OK, cela renverra une chaîne, vous pourrez alors modifier la chaîne renvoyée pour l'adapter à votre SQL (Words() et Concat Items() à titre d'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);
Re : Comment saisir et transmettre des données depuis une List Box ?Bonjour,
merci pour les suggestions. J'aimerais pouvoir copier les numéros de série de quelque part, puis les transmettre davantage en utilisant la fonction d'analyse, donc l'option 2 et avec la fenêtre modale. Je vais essayer avec Text Edit Box.
Cordialement
Re : Comment saisir et transmettre des données depuis une List Box ?Quelques questions/idées pour vous aider :
- Voulez-vous que l'utilisateur sélectionne les numéros de série intéressants dans la liste pré-créée ? Vous pouvez utiliser une zone de liste
- Souhaitez-vous que l'utilisateur puisse copier-coller des numéros de série à partir d'un endroit 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 probablement d'éviter cela, car si l'utilisateur copie des valeurs quelque part, il peut déjà sélectionner ce qu'il souhaite inclure.
- Voulez-vous utiliser modal ?
Vérifiez l'index de script pour : Modal (comment créer une fenêtre modale), zone de liste, zone d'édition de texte, éléments Concat (comment convertir une liste JMP en chaîne)
Exemple rapide avec une 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("");
)
);
