Metti in pausa lo script fino a dopo che l'utente lavora manualmente sulla tabella datiGente,
Sto cercando di mettere in pausa il mio script in modo che un utente possa lavorare manualmente su una tabella di dati aperta (esaminare manualmente i dati e aggiungere/eliminare righe o colonne) prima di procedere. Ho provato a utilizzare una finestra di dialogo per ottenere questo risultato, ma non posso lavorare sulla tabella dei dati fino a quando la finestra di dialogo non viene accettata. Qualcuno ha qualche suggerimento su come posso realizzare questo?
Pulisci il registro();
I nomi predefiniti sono qui ( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
Nuova finestra( "ASPETTA!",
< bip(),
Casella di riepilogo V(
Casella di testo(
"Aggiungi/elimina manualmente righe o colonne nella tabella dati"
),
)
);
// L'utente aggiunge o sottrae righe/colonne dalla tabella dati aperta prima di procedere
// Altre istruzioni
Ri: Sospendi lo script fino a dopo che l'utente lavora manualmente sulla tabella datiImmagino tu stia facendo qualcosa del genere.
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>
dove non vuoi che "questo non dovrebbe essere mostrato finché non va bene
Tuttavia, non devi fare nient'altro fino a quando non viene premuto OK.Il modo normale in cui lo faccio è usare le funzioni e chiamarle dal pulsante ok.
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
action_okay = function({},
//{DEFAULT LOCAL}, //uncomment this if you want the variables to be local only (don't exist outside the function)
// put everything you want to do after okay button in here.
print("this shouldn't show until okay");
// other stuff
);
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>Ri: Sospendi lo script fino a dopo che l'utente lavora manualmente sulla tabella datiPer questo particolare esempio, se si desidera che l'utente esegua operazioni manuali su una tabella, è possibile creare una visualizzazione dati/riquadro dati per quella tabella che verrà visualizzata nella stessa finestra.Per esempio:
Names Default To Here( 1 );
dt = New Table( "My Table" );
dt << Add Rows( 10 );
dt << New Column( "X1", Set Values( J( 10, 1, Random Normal() ) ) );
dt << New Column( "X2", Set Values( J( 10, 1, Random Uniform() ) ) );
nw = New Window( "Prepare Your Data",
hb = H List Box(
V List Box(
Text Box( "Delete Unneccesary Columns in Table and then click OK" ),
Button Box( "OK", nw << close window )
),
Panel Box( "Data Table View",
Border Box( Sides( 15 ), dt << new data box(), <<BORDER></BORDER>

Ri: Sospendi lo script fino a dopo che l'utente lavora manualmente sulla tabella datiLa sceneggiatura e l'idea fornite da Vince dovrebbero funzionare, devi posizionare le azioni che vuoi eseguire, dopo aver premuto il pulsante, all'interno dei pulsanti funzione di chiamata
Button Box("OK",
<<SET function=""></SET>
Lo script che verrà eseguito dopo aver premuto il pulsante "OK" è questo:
Print("fai cose"); self << Chiudi finestra;
Ci sono altri modi per farlo, ma questa è molto probabilmente l'opzione più semplice e inizierei con essa.
Ri: Sospendi lo script fino a dopo che l'utente lavora manualmente sulla tabella datiVinci,
Se capisco la domanda dell'utente, sto cercando di fare una cosa molto simile, ovvero consentire all'utente di modificare una tabella prima di procedere con lo script. Forse non ho fatto qualcosa di giusto, ma quando utilizzo lo script sopra all'interno del mio script, il programma continua a funzionare causando un errore perché le necessarie modifiche alla tabella non sono state apportate.
Quindi, se utilizzo il modale, lo script si interrompe ma non consente la modifica della tabella.
Se non utilizzo il modale, è consentita una modifica della tabella prima di premere OK, ma lo script continua a funzionare senza la modifica necessaria.
Voglio che lo script smetta di funzionare e non proceda finché l'utente non indica che le modifiche alla tabella sono state apportate.
Può essere fatto?
Grazie in anticipo per il vostro aiuto.
Patrick Carrol
Ri: Sospendi lo script fino a dopo che l'utente lavora manualmente sulla tabella datiGrazie Vincenzo,
È stato facile. Immagino di aver bisogno di leggere le proprietà modali.
Ri: Sospendi lo script fino a dopo che l'utente lavora manualmente sulla tabella datiBasta non rendere modale la nuova finestra. Quindi avere tutte le azioni all'interno del pulsante OK (o qualsiasi altro pulsante).
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>