Ciao a tutti,
Ho appena riscontrato 2 problemi con il mio script in una finestra modale che funzionava bene in JMP14 ma non appena sono passato a JMP16, sono stati riscontrati questi 2 problemi:
1) È uscito un messaggio di errore che indica " riferimento oggetto eliminato: cc << Ottieni selezionato nell'accesso o nella valutazione di 'Glue',..... "
2) Il pulsante "Annulla" mostra un errore " Nome non risolto: pulsante in accesso o valutazione di 'Pulsante', pulsante (-1) /*###*/ "
Di seguito è riportato uno script semplificato che funziona correttamente in JMP14 ma non in JMP16. Se funziona correttamente, lo script creerà una nuova colonna ("Risultato") che indica "Passato" se la casella di controllo è selezionata, ma "Fallito" se la casella di controllo è deselezionata. Per quanto riguarda il pulsante "Annulla", se funziona correttamente, non ci sarà alcun messaggio di errore quando viene cliccato, dove chiuderà la finestra modale.
Nomi predefiniti qui( 1 );
dt = Tabella dati correnti ();
win = New Window( "User Input", << Modal, LineUpBox( Ncol( 1 ),
cchk = {"Passo"};
PanelBox("Risultato",
cc = Casella di controllo (cck),
cc << Imposta( 1, 1 ),
SpacerBox( Dimensione( 1, 0 ) )),
HListBox( SpacerBox(), ButtonBox("OK"), ButtonBox("Annulla")),
));
If( win["Button"] == -1, win << Chiudi finestra);
ctc = cc << Ottieni selezionato;
dt << Nuova colonna ("Risultato", carattere, nominale);
Se (Contiene (ctc, "Pass"),
dt:Risultato << Imposta ogni valore ("Pass"),
dt:Risultato << Imposta ogni valore ("Fallito"));
In generale, ho scoperto che JMP16 è un po' più aggressivo nell'eliminare immediatamente le caselle di visualizzazione.
Tuttavia, il modo che ho sempre usato Modale Windows è utilizzando il In Convalida funzione -- questa è in genere riservata per determinare se la finestra deve chiudersi (forse non tutti gli input richiesti sono stati compilati e non vuoi che la finestra si chiuda tramite il pulsante "OK".) Assicurati solo di restituire un 1 per una corretta chiusura della finestra.
Names Default To Here( 1 );
dt = Current Data Table();
win = New Window( "User Input",
<<MODAL></MODAL>
Ciao, scusa davvero per il ritardo nella risposta. Sono stato impegnato con il lavoro nelle ultime 2 settimane. Grazie per la soluzione. Funziona e ho imparato qualcosa di nuovo. Lo apprezzo !