Newb JSL Domanda: come ottenere il contenuto di una casella di modifica del testo in una variabile?CIAO,
Sono un principiante in JSL (JMP 13.1) e sto lottando con la logica del dialogo interattivo, in particolare come estrarre il contenuto di una casella di modifica del testo in una variabile.
Ecco uno snippet di uno script JSL che non funziona (cioè la variabile "prefix" non viene aggiornata con il contenuto della Text Edit Box "tt1).
prefix = "";
win = New Window (" TEST ",
<< Modal,
<< On Validate (
if (Is Missing (prefix),0,1);
),
H List Box (
Text Box (" Define Prefix "),
tt1 = Text Edit Box (""),
prefix = (tt1 << Get Text) // I cannot figure out how to assign the content of "tt1" to "prefix""
),
);
Show (tt1, prefix);Grazie per l'aiuto.
Cordiali saluti,
ST
Ri: Newb JSL Domanda: Come ottenere il contenuto di una casella di modifica del testo in una variabile?Attualmente stai posizionando lo script di assegnazione in una funzione che prevede caselle di visualizzazione.Ecco i diversi punti in cui potresti inserire la linea:
1/ in base al tuo codice, stai convalidando la finestra in base al valore del prefisso, quindi potresti inserire una riga prima del test condizionale
2/ dopo la chiamata alla nuova finestra, per deselezionare il contenuto della finestra una volta che l'utente ha fatto clic su OK
3/ all'interno di un evento onClose, creato utilizzando una sintassi simile a onValidate (raggiunge lo stesso di (2) ma è più elegante e più robusto su piattaforme Windows/Mac
4/ all'interno di un gestore di eventi collegato alla casella di visualizzazione stessa
Dato che stai convalidando il modulo, sceglierei la prima opzione:
prefix = "";
win = New Window (" TEST ",
<< Modal,
<< On Validate (
prefix = tt1 << Get Text;
if (Is Missing (prefix),0,1);
),
H List Box (
Text Box (" Define Prefix "),
tt1 = Text Edit Box (""),
),
);
Show (tt1, prefix);
Ri: Newb JSL Domanda: Come ottenere il contenuto di una casella di modifica del testo in una variabile?Inserire lo script che imposta il valore del prefisso nello script che viene eseguito quando la casella di modifica del testo viene modificata
Names Default To Here( 1 );
prefix = "";
win = New Window( " TEST ",
<<MODAL></MODAL>
Ri: Newb JSL Domanda: Come ottenere il contenuto di una casella di modifica del testo in una variabile?Prova questo
win = New Window( "Set a Value in Number Edit Box",
<<MODAL></MODAL>
Quando la finestra modale si chiude, il valore restituito è un elenco del contenuto delle caselle che avevano assegnazioni:
win = {numberbox = 3.1415, texteditbox = "argyle", Button(1)};
Il pulsante (1) indica il pulsante OK, -1 è il pulsante Annulla.
win["numberbox"] è un modo per chiedere alla lista di cercare i suoi membri per l'assegnazione e restituire il valore.
Ri: Newb JSL Domanda: Come ottenere il contenuto di una casella di modifica del testo in una variabile?Ciao Craig,
Grazie per il tuo aiuto: ho già provato a spostare la riga "prefix = (tt1 << Get Text) all'interno della chiamata Text Edit Box ma ricevo un messaggio di errore "La casella di visualizzazione 'TextEditBox' non riconosce il messaggio 'Assign '".
Non ho ancora capito come incorporare l'opzione Return ResultRi: Newb JSL Domanda: Come ottenere il contenuto di una casella di modifica del testo in una variabile?Guarda gli esempi usando "Return Result" in https://www.jmp.com/support/help/14-2/constructors-for-new-windows.shtml
Sempre nel tuo esempio:
H List Box (
Text Box (" Define Prefix "),
tt1 = Text Edit Box (""),
prefix = (tt1 << Get Text) // I cannot figure out how to assign the content of "tt1" to "prefix""
),
gli argomenti tt1=... e prefix=... di HListBox vengono eseguiti durante la creazione di hlistbox. tt1 risulta in un textEditBox che HListBox mantiene. Sono abbastanza certo che il valore del prefisso, "", venga ignorato da hlistbox. Sono lontano dalla mia scrivania, ma penso che textEditBox potrebbe essere in grado di eseguire alcuni JSL come secondo argomento quando il valore cambia ... forse vuoi qualcosa di più vicino a tt1=texteditbox("", prefix=(tt1<Se funziona, potrebbe non essere necessario utilizzare "Return Result".