Hola a todos,
Acabo de encontrar 2 problemas con mi script en una ventana modal que solía funcionar bien en JMP14, pero tan pronto como me moví sobre JMP16, se encontraron estos 2 problemas:
1) Aparece un mensaje de error que dice " referencia de objeto eliminado: cc << Obtener seleccionado en el acceso o evaluación de 'Pegamento', ..... "
2) El botón "Cancelar" muestra un error "Nombre sin resolver: Botón en el acceso o evaluación de 'Botón', Botón (-1) / * ### * /"
A continuación se muestra un script simplificado que funciona bien en JMP14 pero no en JMP16. Si funciona correctamente, el script creará una nueva columna ("Resultado") que indicará "Aprobado" si la casilla de verificación está marcada, pero un "Fallo" si la casilla de verificación no está marcada. Acerca del botón "Cancelar", si funciona correctamente, no habrá ningún mensaje de error cuando se haga clic en él, donde se cerrará la ventana modal.
Nombres predeterminados aquí (1);
dt = Tabla de datos actuales ();
win = Nueva ventana ("Entrada de usuario", << Modal, LineUpBox (Ncol (1),
cchk = {"Aprobar"};
PanelBox ("Resultado",
cc = casilla de verificación (cchk),
cc << Conjunto (1, 1),
SpacerBox (tamaño (1, 0))),
HListBox (SpacerBox (), ButtonBox ("Aceptar"), ButtonBox ("Cancelar")),
));
If (win ["Button"] == -1, win << Cerrar ventana);
ctc = cc << Obtener seleccionado;
dt << Nueva columna ("Resultado", carácter, nominal);
Si (contiene (ctc, "Pass"),
dt: Resultado << Establecer cada valor ("Aprobado"),
dt: Resultado << Establecer cada valor ("Fallo"));
En general, descubrí que JMP16 es un poco más agresivo al eliminar cuadros de visualización de inmediato.
Sin embargo, la forma en que siempre he usado Modal Windows es utilizando el OnValidate función: esto generalmente se reserva para determinar si la ventana debe cerrarse (quizás no todas las entradas requeridas están completadas y no desea que la ventana se cierre mediante el botón 'Aceptar'). Solo asegúrese de devolver un 1 para el correcto cierre de la ventana.
Names Default To Here( 1 );
dt = Current Data Table();
win = New Window( "User Input",
<<MODAL></MODAL>
Hola, lo siento mucho por la respuesta tardía. He estado ocupado con el trabajo durante las últimas 2 semanas. Gracias por la solucion Funciona y aprendí algo nuevo. Valora eso !