Wie gebe ich Daten aus dem Listenfeld ein und übergebe sie?Hallo,
Ich möchte eine Liste von Parametern oder Variablen auf Fensterebene bereitstellen (z. B. aus Excel kopiert) und diese Liste weitergeben (z. B. durch Klicken auf „OK“), um eine weitere Liste für eine SQL-Abfrage zu erstellen. Kann ich das mit einer Art Listenfeld machen (etwa wie im Bild unten)? Welche anderen Methoden könnten dafür verwendet werden? Beste grüße.

DatenzugriffBetreff: Wie gebe ich Daten aus dem Listenfeld ein und übergebe sie?Hallo, entschuldigen Sie die späte Antwort. Genau das wollte ich umsetzen. Vielen Dank. Beste grüße
Betreff: Wie gebe ich Daten aus dem Listenfeld ein und übergebe sie?Unten finden Sie ein Beispiel. Erstellen Sie eine Funktion (im Beispiel parsePaste), um die Eingabe zu verarbeiten und die gewünschten Änderungen vorzunehmen: Duplikate entfernen, Zeilenänderungen durch etwas ersetzen, doppelte Trennzeichen entfernen ... Nachdem Sie auf OK geklickt haben, wird eine Zeichenfolge zurückgegeben. Anschließend können Sie die zurückgegebene Zeichenfolge so ändern, dass sie in Ihr SQL passt (Beispiele: Words() und Concat Items()).
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);
Betreff: Wie gebe ich Daten aus dem Listenfeld ein und übergebe sie?Hallo,
Vielen Dank für Vorschläge. Ich möchte in der Lage sein, Seriennummern von irgendwoher zu kopieren und sie dann mithilfe der Parsing-Funktion weiterzugeben, also Option 2 und zusammen mit dem modalen Fenster. Ich werde es mit dem Textbearbeitungsfeld versuchen.
Beste grüße
Betreff: Wie gebe ich Daten aus dem Listenfeld ein und übergebe sie?Ein paar Fragen/Ideen, um Ihnen den Einstieg zu erleichtern:
- Möchten Sie, dass der Benutzer die interessanten Seriennummern aus einer vorab erstellten Liste auswählt? Sie könnten ein Listenfeld verwenden
- Möchten Sie, dass Benutzer Seriennummern von irgendwo kopieren und einfügen können, die in eine SQL-Abfrage konvertiert werden? Sie können das Textbearbeitungsfeld mit einer Analysefunktion verwenden.
- Möglicherweise beides oben? Ich würde höchstwahrscheinlich versuchen, dies zu vermeiden, da der Benutzer, wenn er Werte von irgendwoher kopiert und einfügt, bereits dort auswählen kann, was eingeschlossen werden soll.
- Möchten Sie modal verwenden?
Überprüfen Sie den Skriptindex auf: Modal (wie man ein modales Fenster erstellt), Listenfeld, Textbearbeitungsfeld, Concat-Elemente (wie man eine JMP-Liste in einen String konvertiert)
Kurzes Beispiel mit einem Listenfeld, das den Textfeldwert unter der Schaltfläche „OK“ festlegt und ausgewählte Werte als Liste ausgibt, um sie zu protokollieren, wenn „OK“ gedrückt wird:
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("");
)
);
