Salve, sto scrivendo script in JMP Pro Application Builder.
- Ho una finestra principale in cui ho un pulsante che mi porta a una finestra secondaria. All'interno della finestra secondaria, sono presenti caselle di modifica del testo in cui i valori vengono inseriti dall'utente. Inoltre, in questa finestra secondaria è presente un pulsante di chiusura che salva i valori nell'appNS e chiude la finestra secondaria.
- Ho le variabili inizializzate nella finestra principale per avere valori predefiniti di 0. Ho problemi a far sì che le variabili utilizzino i valori aggiornati dalla nuova finestra invece dei valori predefiniti. Stampa istantaneamente i valori predefiniti invece di eseguire la funzione e quindi stampare i valori aggiornati. Qualsiasi aiuto sarebbe apprezzato.
Ecco alcuni frammenti di codice per riferimento (PredictiveModeling è la finestra principale e OptimizeModelWindow è la finestra secondaria):
appNS: ParamList1 = 0;
appNS: ParamList2 = 0;
appNS: ParamList3 = 0;
appNS: ParamList4 = 0;
appNS: ParamList5 = 0;
appNS: ParamList6 = 0;
OptimizeParamsButtonPress = Function( {this}, // This function is called when the OptimizeParams button is pressed on the PredictiveModeling Window
name = this << Get Button Name;
OptimizeModelWindow << Create Instance(thisModuleInstance);
Wait(OptimizeModelWindow);
PList1 = appNS: ParamList1;
PList2 = appNS: ParamList2;
PList3 = appNS: ParamList3;
PList4 = appNS: ParamList4;
PList5 = appNS: ParamList5;
PList6 = appNS: ParamList6;
Print(PList1,PList2,PList3,PList4,PList5,PList6);
);
Qui è dove le variabili vengono lette dagli EditBox e aggiornano i valori predefiniti...
doOptimizeParams = Function ( {},
HP1 = PEdit1 << Get Text;
appNS: ParamList1 = HP1;
HP2 = PEdit2 << Get Text;
appNS: ParamList2 = HP2;
HP3 = PEdit3 << Get Text;
appNS: ParamList3 = HP3;
HP4 = PEdit4 << Get Text;
appNS: ParamList4 = HP4;
HP5 = PEdit5 << Get Text;
appNS: ParamList5 = HP5;
HP6 = PEdit6 << Get Text;
appNS: ParamList6 = HP6;
);
CloseOptimizeButtonPress = Function( {this},
// This function is called when the Optimize button is pressed on the popup OptimizeModel window
name = this << Get Button Name;
doOptimizeParams();
Print(ParamList1,ParamList2,ParamList3,ParamList4,ParamList5,ParamList6);
(thisModuleInstance << GetBox) << Close Window;
);Stai creando una nuova finestra o un nuovo modulo applicativo per il tuo dialogo? Non funzionano allo stesso modo. Guarda come passare le variabili con i moduli dell'applicazione .
Grazie, lo esaminerò. Ho due moduli applicativi per il dialogo, il modulo principale e il modulo secondario in cui l'utente inserisce i valori. Adesso funziona, ma forse non è il modo migliore. Ho una variabile flag sul pulsante "chiudi" del modulo secondario. Quando viene sollevato quel flag, ho una grande istruzione "If" nel mio modulo principale che esegue il codice per questo caso.