Hola, estoy creando secuencias de comandos en JMP Pro Application Builder.
- Tengo una ventana principal en la que tengo un botón que me lleva a una ventana secundaria. Dentro de la ventana secundaria, hay cuadros de edición de texto donde el usuario ingresa los valores. Además, hay un botón de cierre en esta ventana secundaria que guarda los valores en appNS y cierra la ventana secundaria.
- Tengo las variables inicializadas en la ventana principal para tener valores predeterminados de 0. Tengo problemas para que las variables usen los valores actualizados de la nueva ventana en lugar de los valores predeterminados. Imprime los valores predeterminados al instante en lugar de ejecutar la función y luego imprimir los valores actualizados. Cualquier ayuda sería apreciada.
Aquí hay algunos fragmentos de código como referencia (PredictiveModeling es la ventana principal y OptimizeModelWindow es la ventana secundaria):
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);
);
Aquí es donde se leen las variables de los cuadros de edición y se actualizan los valores predeterminados...
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;
);¿Está creando una nueva ventana o un nuevo módulo de aplicación para su diálogo? No funcionan de la misma manera. Ver cómo pasar variables con módulos de aplicación .
Gracias, investigaré eso. Tengo dos módulos de aplicación para el diálogo, el módulo principal y el módulo secundario donde el usuario ingresa valores. Lo tengo funcionando ahora, pero tal vez no de la mejor manera. Tengo una variable de bandera en el botón "cerrar" del módulo secundario. Cuando se levanta esa bandera, tengo una gran declaración "Si" en mi módulo principal que ejecuta el código para este caso.