La finestra del rapporto non si chiudeHo uno script che sto cercando di configurare e che, una volta eseguito, visualizza una GUI interattiva simile a questa:

Posso popolare il numero di lotto e l'unico pulsante che funziona al momento è quello "CPL Screen".Facendo clic su di esso viene prodotto un rapporto che indica se i wafer in quel lotto hanno superato i limiti di screening.Se nei dati sono presenti codici di errore o valori estremamente elevati, al report viene aggiunta una casella di pulsante che chiede se l'utente desidera che tali valori vengano rimossi e lo screening venga eseguito nuovamente.

Ho impostato il pulsante nel punto in cui dovrebbe chiudere la finestra del rapporto corrente e la tabella dati ad essa associata ed eseguire nuovamente la stessa "Schermata CPL" eseguita all'inizio dopo aver rimosso i dati errati.L'unico problema è che quando clicco sul pulsante di riesecuzione la finestra originale non si chiude e il report non termina.
Posso entrare fisicamente nello script ed evidenziare il codice collegato al pulsante e lo script funziona correttamente.Non funziona solo se faccio effettivamente clic sul pulsante.Ecco come appare l'elenco delle finestre quando viene visualizzato per la prima volta:

Ecco come appare quando faccio clic sul pulsante di riesecuzione:

Sembra che il rapporto originale non si chiuda prima dell'apertura di quello nuovo.Sono perplesso considerando che posso eseguire fisicamente lo stesso codice e tutto funziona.Quello che segue è un diagramma di flusso suedo di ciò che sta facendo lo script:

Qualsiasi aiuto sarebbe molto apprezzato
Re: La finestra del report non si chiudeIl pulsante e tutte le sue proprietà, incluso lo script, sono figli di una struttura ad albero di visualizzazione. L'albero di visualizzazione è contenuto nella finestra. Quando chiudi la finestra, il pulsante e il suo script vengono distrutti. Ciò causerebbe un errore, potenzialmente molto grave, se fosse lo script del pulsante a chiudere la finestra. Pertanto, JMP controlla questo aspetto e si assicura che la finestra sia nascosta, ma rimane in attesa affinché lo script del pulsante termini.
Ecco uno script per dimostrare questo comportamento. Guarda l'elenco delle finestre nella finestra Home per vederlo:
win1 = New Window( "Window 1",
V List Box(
Button Box( "Close window 1 and open window 2",
win1 << close window;
win2 = New Window( "Window 2",
<<MODAL></MODAL>
Re: La finestra del report non si chiudeHo capito che se inserisci un pulsante nella finestra del report che chiude quella finestra e continua con più script, la finestra che conteneva il pulsante non si chiude completamente. Ma se inserisci un pulsante all'esterno della finestra del report che esegue esattamente lo stesso script, tutto funziona correttamente. Non sono esattamente sicuro del motivo e ho dovuto modificare un po' la mia sceneggiatura per compensare, ma alla fine funziona bene.Re: La finestra del report non si chiudeIl codice per aggiungere il pulsante alla finestra del report è quindi:
if(errors_exist == 1 | large_value == 1,
error_box << append(Button box("Remove Erroneous Data and Rerun Analysis",redo_analysis))
)
Il codice per redo_analysis è il seguente:
redo_analysis = expr(//if the user wants to eliminate error codes or large data values need to redo the screening and remove the issue points
close(dt_screen_results, nosave);
re_run = 1; //boolean flip to not have the script pull data from the database again
screen_result_window << close window;
//wait(5);
column(dt_lot, "Screen Results") << set selected(1);
dt_lot << delete columns();
if(errors_exist == 1, //deletes the error code rows
dt_lot << selectrows(error_rows)
);
if(large_value == 1,//deletes the large value rows
dt_lot << selectrows(large_values)
);
dt_lot << delete rows()
CPL_screen
//window(char(lot_num << get text) || " CPL Results Summary") << close window;
);
Se premo il pulsante nel rapporto il problema persiste. Se non premo il pulsante ma evidenzio redo_analysis nello script ed eseguo quella parte, tutto funziona correttamente.
Re: La finestra del report non si chiudeL'apertura di una finestra in JMP non interrompe automaticamente l'elaborazione dello script.È necessario dichiarare la finestra come una finestra "modale" o incorporare il codice da eseguire negli oggetti all'interno della finestra, in modo che non vengano eseguiti finché un utente non fa clic su un pulsante o effettua una scelta in una casella combinata, eccetera.
Quindi la mia ipotesi è che il tuo codice JMP continui l'elaborazione mentre hai la finestra aperta e stai pensando che l'elaborazione stia aspettando l'input dell'utente prima di continuare.
Re: La finestra del report non si chiudeDopo ulteriori tentativi, sembra che lo script non venga eseguito nella sequenza che avevo pensato. Pensavo che lo script avrebbe eseguito le cose in sequenza, poiché la riga 10 sarebbe stata eseguita, quindi sarebbe passato alla riga 11 e l'avrebbe eseguita. Ho scoperto che anche se ho la riga report << chiudi finestra() su una riga all'inizio della parte di riesecuzione, lo script non esegue completamente quella riga finché lo script non è completamente terminato. La finestra verrà nascosta ma non chiusa completamente finché non verrà aperta la nuova finestra. Poiché ho un additivo < Qualche idea sul motivo per cui JMP sta facendo questo e cosa posso fare per mitigarlo? Ho dimenticato di dire che sto utilizzando JMP 12.