Ciao,
Vorrei fornire un elenco di parametri o variabili dal livello della finestra (ad esempio copiato da excel) e passare ulteriormente questo elenco (ad esempio facendo clic su OK) per creare un altro elenco per una query SQL. Posso farlo con un qualche tipo di casella di riepilogo (qualcosa come nell'immagine qui sotto)? Quali altri metodi potrebbero essere utilizzati per farlo? I migliori saluti.

Un paio di domande/idee per iniziare:
- Vuoi che l'utente selezioni i numeri di serie interessanti dall'elenco pre-creato? Potresti usare la casella di riepilogo
- Vorresti che l'utente fosse in grado di copiare e incollare i numeri di serie da qualche parte che verranno convertiti in query SQL? Puoi usare la casella di modifica del testo con una funzione di analisi.
- Forse entrambi sopra? Molto probabilmente cercherei di evitarlo, poiché se l'utente copia e incolla i valori da qualche parte, può effettuare la selezione già lì ciò che desidera includere.
- Vuoi usare il modale?
Controlla l'indice di scripting per: modale (come creare una finestra modale), casella di riepilogo, casella di modifica del testo, elementi Concat (come convertire l'elenco JMP in stringa)
Esempio rapido con List Box che imposterà il valore della casella di testo sotto il pulsante OK e stamperà i valori selezionati come elenco da registrare quando si preme 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("");
)
);

Ciao,
grazie per i suggerimenti. Vorrei essere in grado di copiare i numeri di serie da qualche parte e quindi passarli ulteriormente utilizzando la funzione di analisi, quindi l'opzione 2 e insieme alla finestra modale. Proverò con la casella di modifica del testo.
I migliori saluti
Di seguito è riportato un esempio. Crea una funzione (ad esempio parsePaste) per gestire l'input e apportare le modifiche che desideri: rimuovere i duplicati, sostituire le modifiche alle righe con qualcosa, rimuovere i separatori duplicati... Dopo aver premuto OK, verrà restituita una stringa, quindi è possibile modificare la stringa restituita per adattarla al proprio SQL (Words() e Concat Items() come esempi).
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);