Data Table On Close Issue a seconda di come viene chiusoCiao, sto riscontrando un problema con il modo in cui JMP decide di chiudere le tabelle di dati che hanno il seguente script:
dt << On Close(close(Tabella dati correnti(),nosave));
Il mio problema principale è come si chiudono le tabelle di dati quando ci sono più finestre aperte con questo script. Se viene utilizzata la X nell'angolo in alto a destra funzionerà perfettamente 10/10 volte, ma se scendi sulla barra delle applicazioni e passi con il mouse sopra ogni tabella e premi X allora può chiudere più tabelle di dati (di solito tabelle di dati che sono state aperte dopo quello che viene chiuso) che può causare problemi se stiamo utilizzando attivamente altre tabelle.
La tabella dei dati correnti viene trasferita nelle altre tabelle dei dati? Stavo cercando di trovare un modo per allontanarmi dall'approccio Current Data Table e fare in modo che prenda il nome corrente della tabella dati e tenti di chiuderlo in quel modo, ma stavo riscontrando problemi.
Si tratta di un problema con lo script o di un problema con la gestione della chiusura delle finestre da parte di JMP tramite la barra delle applicazioni?
Grazie,
Automazione e scriptingOggetto: tabella dati alla chiusura Problema a seconda di come viene chiusoQuali tabelle di dati stai tentando di chiudere con On Close()?
Oggetto: tabella dati alla chiusura Problema a seconda di come viene chiusoNon usare CurrentDataTable(). Sempre, se si può evitare. Come hai notato, la tabella corrente viene impostata facendo clic su una tabella e alcune altre possibilità. Apparentemente la barra delle applicazioni non conta come fare clic sul tavolo.
Penso che tu stia cercando di applicare il "nosave" per dimenticare eventuali modifiche. (potresti anche usare la funzione setDirty(0).) Ecco due modi per farlo.
Innanzitutto, con un parametro 'this', a in questo esempio. Contiene una finestra che ha una casella figlio che conosce la tabella.
dt = Open( "$sample_data/big class.jmp" );
dt << onclose(
Function( {a},
Close( (a << child) << getdatatable, nosave );
1;
)
);
Secondo, cuocendo in tavola:
dt = Open( "$sample_data/big class.jmp" );
Eval(
Eval Expr(
dt << onclose(
Close( Expr( dt ), nosave );
1;
)
)
);
Oggetto: tabella dati alla chiusura Problema a seconda di come viene chiusoL'esempio setdirty:
dt = Open( "$sample_data/big class.jmp" );
Eval(
Eval Expr(
dt << onclose(
Expr( dt ) << setdirty( 0 );
1;
)
)
);
Se questo è il tuo obiettivo, questo potrebbe essere leggermente più corretto; Gli interni di JMP non saranno sorpresi quando lo script onclose ritorna e la tabella è già chiusa. Per questo, l'1; che viene restituito segnala a JMP di continuare a chiudere la tabella.
Oggetto: tabella dati alla chiusura Problema a seconda di come viene chiusoTabelle di dati che estraggono informazioni da un'altra origine dati (LIMS, Excel, ecc.).
Estrae le informazioni e poi ci sono script che generano automaticamente grafici IR, applicano limiti di controllo alle colonne e alcune altre piccole comodità.
Cerco di rendere le cose il più automatizzate possibile nella progettazione degli script e dovrebbe esserci un'interferenza umana minima con la tabella dei dati. Tutto ciò che dobbiamo guardare fondamentalmente ti salta fuori e indicherà se è necessario intraprendere un'azione.
Poiché questi stanno estraendo da una vista di sola lettura di LIMS/Excel, non c'è motivo di aver bisogno di salvare qualcosa tranne in rare circostanze in cui è necessaria una manipolazione aggiuntiva.
Oggetto: tabella dati alla chiusura Problema a seconda di come viene chiusoQuesto fa il lavoro finora! Se mi imbatto in situazioni che vanno storte, tornerò.
Grazie Craig!
Oggetto: tabella dati alla chiusura Problema a seconda di come viene chiusoHai provato le altre opzioni (usando Chiudi) @Craige_Hales suggerito (non usando << Set Dirty). Penso che dovrebbero funzionare anche se hai rapporti aperti. Un'altra opzione sarebbe quella di ottenere l'elenco di tutti i rapporti associati alla tabella dei dati e chiuderli prima (non sono sicuro che ci sia una funzione facile per questo).
Oggetto: tabella dati alla chiusura Problema a seconda di come viene chiusoCiao Jarmo,
Ho appena provato uno degli altri esempi proposti da Craige e alla fine ha funzionato. Ho davvero bisogno di esaminare tutte le risposte fornite prima di rispondere in futuro. È facile dimenticare che ci sono milioni di modi per fare la stessa cosa in JMP e tutti i feedback qui ci aiutano a ricordarmelo.
Grazie per l'aiuto.
Oggetto: tabella dati alla chiusura Problema a seconda di come viene chiusoCiao Craige, si è verificato un piccolo intoppo con l'approccio di Set Dirty.
Con il metodo Current Data Table chiuderebbe anche tutte le finestre aperte che dipendevano dall'apertura della tabella dati, come un grafico di controllo. Quale sarebbe l'approccio migliore per costringerlo a chiudere tutte le finestre dipendenti in modo da chiudere l'intera tabella di dati con un clic e nessun altro prompt?
Modificare:
Eval(
Eval Expr(
dt << onclose(
Close( Expr( dt ), nosave );
1;
)
)
);
Questo funziona per chiudere tutte le finestre dipendenti. non l'avevo provato! Grazie per il vostro aiuto a tutti.
Ri: Tabella dati alla chiusura Il problema dipende da come viene chiusoSembra che l'opzione onClose non venga salvata con la tabella dati.
Esiste la possibilità di memorizzare l'impostazione onClose con la tabella dati?
In caso contrario, esiste la possibilità di eseguire silenziosamente il messaggio OnClose quando la tabella dati viene aperta dall'utente?
Ho provato a mettere
dt << on close( Function( {a}, Close( (a << child) << getdatatable, nosave ); 1;));nel mio script On Open Table, ma ora ogni volta che apro la tabella dati, Jmp mostra l'avviso:

Hm, sto programmando una sceneggiatura
- paroloni per "dire a Jmp alla fine di non fare nulla, nemmeno salvare i dati" 