Possibile chiudere un rapporto quando il tavolo si chiude?Ti interessa sapere se esiste un metodo per chiudere automaticamente una finestra contenente un report quando il datatable viene chiuso, in particolare utilizzando il messaggio "<< On Close"? Ad esempio, creo una distribuzione da un datatable e aggiungo i risultati a una finestra insieme ad altre informazioni importanti. Se l'utente chiude la tabella dei dati, vorrei eseguire alcune azioni sulla finestra. Quanto segue dimostra:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
VLB = VlistBox(
Distribution(Column(:Age, :Weight));
);
win = New Window("Results",
TextBox("Other things"),
VLB
);
dt << On Close(
Show("Close script activated"); //this line is executed...
VLB << Delete Box(); //...but not this one or any following it.
Show("Remainder of script is not run...");
);
Usare il messaggio "<< On Close" sembrerebbe essere la risposta, ma non riesco ancora a farlo funzionare. Quando chiudo la tabella dt, viene eseguita la prima riga dello script di chiusura, ma non il resto. Ricevo un messaggio che indica che altre finestre di report sono aperte e se voglio chiuderle (facendo clic su "Chiudi tutto" si chiude l'intera finestra dei risultati, non solo la distribuzione), e infine un messaggio che chiede di salvare ("No"). Il mio sospetto è che quando si fa clic sulla "X" per chiudere la tabella, il mio riferimento a VLB viene eliminato prima che lo script On-Close possa essere eseguito.
Mi rendo conto che potrei creare un report della distribuzione e metterlo invece nella mia finestra, ma sarebbe statico, cosa che non voglio.
qualche idea?
Re: Possibile chiudere un report alla chiusura del tavolo?Grazie ragazzi. Sfortunatamente penso di aver bisogno di usare Names Default to Here (1) poiché questo script viene utilizzato all'interno di altri, ma questo soln potrebbe essere utile ad altri.
Sono stato in grado di farlo funzionare con il comando NDtH rendendo globale il mio riferimento VLB. Questo non è ancora l'ideale, ma offre alcune possibilità.
Names Default to Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
::VLB = VlistBox(
Distribution(Column(:Age, :Weight));
);
win = New Window("Results",
TextBox("Other things"),
::VLB
);
dt << On Close(
Show("Close script activated");
::VLB << Delete Box();
Show("Remainder of script...");
);Se c'è un modo per far funzionare la funzione Iscriviti, mi piacerebbe. Ci sono altre azioni che vorrei eseguire sulla mia finestra quando vengono apportate modifiche alla tabella. Grazie ancora.
Re: Possibile chiudere un report alla chiusura del tavolo?Grazie Audrey! buona anche la cattura, sì, l'ho tralasciata. Probabilmente ha senso che vlb sia locale nella finestra dell'editor di script e non disponibile quando la finestra della tabella dati esegue onClose. Penso che una richiesta sia quella di ottenere un messaggio nella finestra di registro sul fatto che vlb non sia definito nel contesto della tabella.
Re: Possibile chiudere un report alla chiusura del tavolo?@nikles Prima di tutto, grazie per una sceneggiatura così fantastica per replicare il problema/domanda. È molto facile vedere cosa stai chiedendo.
In secondo luogo, devo ammettere che quando ho copiato per la prima volta il tuo script per provarlo, non ho copiato la prima riga Names Default to Here(1). Si scopre che l'omissione di quella riga fa sì che lo script funzioni nel modo desiderato. Potrebbe essere una soluzione alternativa se non hai bisogno di quella riga per limitare l'ambito delle tue variabili. (Nota: è certamente una buona pratica utilizzare i nomi predefiniti qui (), ma qui sta portando a qualche tipo di problema di ambito.)
In terzo luogo, ho riscontrato che il comportamento è coerente su Mac e Windows. (Così, @Craige_Hales , ti è capitato di omettere anche i nomi predefiniti in Qui(1)?)
In quarto luogo, Craige ha suggerito che dt << subscribe potrebbe essere una possibilità, ma non sono riuscito a farlo funzionare, con o senza Names Default to Here(1); Continuo a vedere il messaggio sull'apertura di altre finestre di report e voglio chiuderle.
Infine, sto seguendo il nostro team di sviluppo e vedo se questo è qualcosa che dovrebbe essere affrontato.
Re: Possibile chiudere un report alla chiusura del tavolo?Ok, inviato un messaggio al supporto tecnico, quindi si spera che ci sia una soluzione alternativa. Non ero a conoscenza della funzione "Iscriviti", quindi grazie per averla condivisa. Purtroppo anche questo non funziona sul mio sistema, probabilmente lo stesso motivo di fondo. Anche l'esecuzione di "Esempio 1" nella voce dell'indice di scripting per Iscriviti non riesce. Mi vengono in mente molti script passati in cui l'utilizzo sarebbe stato utile.
Re: Possibile chiudere un report alla chiusura del tavolo?@Audrey_Shull
Potrebbe dover passare attraverso il supporto tecnico. Probabilmente una differenza nell'ordine in cui accadono le cose sui due sistemi operativi.
https://www.jmp.com/support/help/14-2/subscribe-to-a-data-table.shtml potrebbe fornire una variazione sufficientemente diversa di onClose per farlo funzionare; Penso che dt<
Ho usato report<Re: Possibile chiudere un report alla chiusura del tavolo?
Hmm. In esecuzione su un Mac (Mojave 10.14.6) con JMP Pro 14.3.0.
Re: Possibile chiudere un report alla chiusura del tavolo?Penso che il tuo script sia corretto e funzioni su Windows in 14.3; quale versione di JMP stai utilizzando?
The platform left the windowLa piattaforma ha lasciato la finestra