Come posso visualizzare una casella di testo che richiede input all'utente?CIAO,
Sto cercando di creare uno script di base che analizzi i miei dati.
Quando premo la miniatura collegata allo script, lo voglio
1. Chiedere all'utente di inserire gli intervalli
2. Creare una tabella dati che mostri i valori massimo e minimo
3. Genera un grafico con il minimo, il massimo e il target al suo interno.
Finora tutto quello che posso fare è ottenere lo script per la tabella dati o il grafico e incorporarlo separatamente nei collegamenti in JMP. Non riesco a capire come generare una casella di generazione di una query per l'utente e non riesco a incorporare insieme il grafico e la tabella dati. Potete consigliare un set di tutorial di base che potrebbe aiutare in questo?
Cordiali saluti,
Elaina
Re: Come faccio a visualizzare una casella di testo che richiede input all'utente.Ciao Jarmo,
Grazie ancora! Un'altra domanda: perché il mio script funziona quando utilizzo userFirstName e userLastName ma non funziona quando utilizzo b1,b2 nel testo della stringa Defining filepath:
// Defining firstname and lastname string
userFirstName = "XXXX";
userLastName = "YYYY";
//changing username variables based on user input
w = New Window( "Defining User Name", <<MODAL></MODAL>
Migliore,
Tardi
Re: Come faccio a visualizzare una casella di testo che richiede input all'utente.Ricevi questo errore perché stai utilizzando la finestra modale e la stai chiudendo "troppo presto". Le finestre modali sono tipi speciali di finestre che sostanzialmente richiedono l'utilizzo di titoli di pulsanti specifici Guida allo scripting > Alberi di visualizzazione > Finestre modali in JSL > Costruisci una finestra modale
Nota: Le finestre modali richiedono almeno un pulsante per chiudere la finestra. Puoi usare OK , SÌ , NO , O Annulla per etichettare i pulsanti della finestra modale. Se non includi almeno uno di questi pulsanti in una finestra modale, JMP aggiunge un file OK pulsante.
Rimuovi w << closeWindow; dai pulsanti Aggiorna stringa. Se desideri chiudere la finestra quando viene premuto quel pulsante (avrai un pulsante OK non necessario), aggiungi il pulsante OK e quindi inviagli un messaggio di clic. Penso che tu possa anche nascondere il pulsante OK se lo desideri
Names Default To Here(1);
// Defining firstname and lastname string
userFirstName = "XXXX";
userLastName = "YYYY";
//changing username variables based on user input
w = New Window("prototype",
<<MODAL></MODAL>
Re: Come faccio a visualizzare una casella di testo che richiede input all'utente.Ciao Jarmo,
Grazie! Ha funzionato a meraviglia! Tuttavia, ora mi sono imbattuto in altri due problemi. Se posso descriverli:
// Defining firstname and lastname string
userFirstName = "XXXX";
userLastName = "YYYY";
//changing username variables based on user input
w = New Window( "prototype", <<MODAL></MODAL>
Prima di tutto, premendo le stringhe di aggiornamento viene visualizzata la tabella corretta, ma viene anche generato un errore:

In secondo luogo lo script "funziona", cioè effettua l'importazione di file multipli, se utilizzo le variabili userFirstName & userLastName, ma non funziona se utilizzo b1, b2 nella stringa concatanata. La mia ipotesi sul motivo è che la parte che sto utilizzando per definire le variabili b1, b2 (utilizzando la casella di modifica testo) è locale. Le variabili b1,b2 non continuano ad esistere nello script rimanente? Se è così, come faccio a farli esistere come variabili globali.
Come posso eliminare l'errore? Sembra che sia causato dall'aggiunta di una clausola <
Idealmente il flusso di lavoro che sto cercando di costruire è:
l'utente esegue lo script
Lo script apre una finestra pop-up, chiedendo all'utente di definire il proprio nome e cognome
Lo script consente all'utente di verificare che la propria voce sia corretta (mostrare filePathString sarebbe migliore dell'output corrente)
Lo script, dopo che l'utente ha fatto clic su OK, continua e utilizza le nuove variabili in diverse filePathStrings.
Esistono molti altri modi in cui potrei incorporare una casella di testo per l'immissione di dati in questo script per il mio scopo, quindi qualsiasi aiuto sarebbe molto apprezzato.
Grazie,
Tardi
Re: Come faccio a visualizzare una casella di testo che richiede input all'utente.Ottieni Invia lì perché è ciò che viene "valutato" nella tabella (<< significa Inviare() ) Molto probabilmente sarà sufficiente racchiudere la tua lista con Eval List() per valutare i valori lì
Names Default To Here(1);
// Defining firstname and lastname string
userFirstName = "XXXX";
userLastName = "YYYY";
//changing username variables based on user input
w = New Window("prototype", // opens a window with a title and this content...
Border Box(top(20), bottom(20), Left(20), Right(20), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box(Text Box("Report Generator")), // a second title, centered
Spacer Box(size(1, 30)), // a little vertical space
H List Box(Text Box("First Name: "), b1 = Text Edit Box(userFirstName)), // data entry
Spacer Box(size(1, 10)), // a little vertical space
H List Box(Text Box("Last Name: "), b2 = Text Edit Box(userLastName)), // more data entry
Spacer Box(size(1, 30)), // a little vertical space
H Center Box( // center the button
Button Box("Update Strings", // this script runs when the button is pressed...
// make a new table with the values...
dt = New Table("StringCheck",
New Column("Name",
Character,
Set Values(Eval List({b1 << get text(), b2 << get text()}))
)
);
// optionally, close the dialog. Or, you might want to run it again...
w << closeWindow; // just the dialog, not the report
)
)
)
)
);
Re: Come faccio a visualizzare una casella di testo che richiede input all'utente.Ciao Craige,
Spero che rispondere ad un vecchio thread sia ok. Voglio creare alcune variabili da utilizzare come stringhe in seguito in uno script (directory utente per l'importazione di file che cambiano a seconda dell'utente): sto cercando di adattare il tuo script per raggiungere questo obiettivo.
L'idea è che le variabili vengano prima create con valori predefiniti. Quindi viene visualizzata la casella di input, l'utente modifica i valori, lo script continua e utilizza le variabili ora aggiornate in un'importazione.
//Import multiple files
Multiple File Import(
<<SET folder=""></SET>
Quindi di seguito verrà prima nello script:
// Defining firstname and lastname string
userFirstName = "XXXX";
userLastName = "YYYY";
//changing username variables based on user input
w = New Window( "prototype", // opens a window with a title and this content...
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box( Text Box( "Report Generator" ) ), // a second title, centered
Spacer Box( size( 1, 30 ) ), // a little vertical space
H List Box( Text Box( "First Name: " ), b1=Text Edit Box( userFirstName ) ), // data entry
Spacer Box( size( 1, 10 ) ), // a little vertical space
H List Box( Text Box( "Last Name: " ), b2=Text Edit Box( userLastName ) ), // more data entry
Spacer Box( size( 1, 30 ) ), // a little vertical space
H Center Box( // center the button
Button Box( "Update Strings", // this script runs when the button is pressed...
// make a new table with the values...
dt = New Table( "StringCheck", New Column( "Name", Character, Set Values( {b1<< get text(), b2 << get text()} ) ) );
// optionally, close the dialog. Or, you might want to run it again...
w << closeWindow; // just the dialog, not the report
)
)
)
)
);Ottengo con successo la finestra di immissione dei dati e una tabella chiamata StringCheck con una colonna di caratteri "Nome", tuttavia i due valori sono "Invia":

Ho provato diverse cose per farlo funzionare, ma per quanto mi riguarda non riesco a capire da dove provenga "Invia".
Qualsiasi aiuto apprezzato, grazie,
Tardi
Re: Come faccio a visualizzare una casella di testo che richiede input all'utente.Uhm. Mi chiedo se ho testato quel JSL. NumberEditBox non aggiorna la variabile v1/v2 quando il campo viene modificato, quindi il report è sempre lo stesso. Questo è quello che dovrebbe essere:
v1 = 30; // two numbers with default
v2 = 40; // values; these will go in a data table
w = New Window( "prototype", // opens a window with a title and this content...
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box( Text Box( "Report Generator" ) ), // a second title, centered
Spacer Box( size( 1, 30 ) ), // a little vertical space
H List Box( Text Box( "value 1: " ), b1=Number Edit Box( v1 ) ), // data entry
Spacer Box( size( 1, 10 ) ), // a little vertical space
H List Box( Text Box( "value 2: " ), b2=Number Edit Box( v2 ) ), // more data entry
Spacer Box( size( 1, 30 ) ), // a little vertical space
H Center Box( // center the button
Button Box( "make report", // this script runs when the button is pressed...
// make a new table with the values...
dt = New Table( "Untitled", New Column( "a", Set Values( {b1<<GET></GET>
Con le variabili extra b1 e b2 per ricordare le caselle e il messaggio <
The report isn't created until after the button is pressed. Artistic license.The report isn't created until after the button is pressed. Artistic license.The report isn't created until after the button is pressed. Artistic license.The report isn't created until after the button is pressed. Artistic license.The report isn't created until after the button is pressed. Artistic license.The report isn't created until after the button is pressed. Artistic license.The report isn't created until after the button is pressed. Artistic license.The report isn't created until after the button is pressed. Artistic license.Il report non viene creato finché non viene premuto il pulsante. Licenza artistica.
Re: Come faccio a visualizzare una casella di testo che richiede input all'utente.Sembra che ci sia un altro esempio di questo thread Qui . Vedi anche la risposta che ho postato lì.
Re: Come faccio a visualizzare una casella di testo che richiede input all'utente.È possibile creare una finestra di dialogo modale o non modale in JMP con il prompt personalizzato.
Le finestre di dialogo modali non ti permetteranno di fare nient'altro finché non le avrai completate. http://www.jmp.com/support/help/Modal_Windows.shtml
Le finestre di dialogo non modali ti consentono di lavorare in altre finestre e di tornare successivamente alla finestra non modale: http://www.jmp.com/support/help/Constructing_Display_Trees.shtml#259363
Un prototipo non modale di ciò che descrivi potrebbe assomigliare a questo:
v1 = 30; // two numbers with default
v2 = 40; // values; these will go in a data table
w = New Window( "prototype", // opens a window with a title and this content...
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box( Text Box( "Report Generator" ) ), // a second title, centered
Spacer Box( size( 1, 30 ) ), // a little vertical space
H List Box( Text Box( "value 1: " ), Number Edit Box( v1 ) ), // data entry
Spacer Box( size( 1, 10 ) ), // a little vertical space
H List Box( Text Box( "value 2: " ), Number Edit Box( v2 ) ), // more data entry
Spacer Box( size( 1, 30 ) ), // a little vertical space
H Center Box( // center the button
Button Box( "make report", // this script runs when the button is pressed...
// make a new table with the values...
dt = New Table( "Untitled", New Column( "a", Set Values( {v1, v2} ) ) );
// launch a platform to analyze the data...
dt << Distribution( Continuous Distribution( Column( :a ), Quantiles( 0 ), Summary Statistics( 0 ), Vertical( 0 ), Outlier Box Plot( 0 ) ) );
// optionally, close the dialog. Or, you might want to run it again...
w << closeWindow; // just the dialog, not the report
)
)
)
)
);
Prototype dialogPrototype dialogPrototype dialogPrototype dialogPrototype dialogPrototype dialogPrototype dialogPrototype dialogFinestra di dialogo del prototipo
Re: Come faccio a visualizzare una casella di testo che richiede input all'utente.b1 e b2 non memorizzano i valori, sono solo riferimenti alle caselle di visualizzazione. E quando chiudi la finestra modale, perderai l'accesso a questi. È possibile memorizzare i valori premendo il pulsante
Names Default To Here(1);
// Defining firstname and lastname string
userFirstName = "XXXX";
userLastName = "YYYY";
//changing username variables based on user input
w = New Window("Defining User Name",
<<MODAL></MODAL>
b1_val e b2_val. E se usi qualcosa del genere, dovresti usarli anche quando aggiungi valori alla tua tabella