¿Es posible cerrar un informe cuando se cierra la mesa?¿Le interesa saber si hay un método para cerrar automáticamente una ventana que contiene un informe cuando se cierra la tabla de datos, específicamente usando el mensaje "<< al cerrar"? Por ejemplo, creo una distribución desde una tabla de datos y agrego los resultados a una ventana junto con otra información importante. Si el usuario cierra la tabla de datos, me gustaría realizar algunas acciones en la ventana. Lo siguiente demuestra:
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...");
);
El uso del mensaje "<< al cerrar" parece ser la respuesta, pero todavía no puedo hacerlo funcionar. Cuando cierro la tabla dt, se ejecuta la primera línea del script al cerrar, pero no el resto. Recibo un mensaje que indica que hay otras ventanas de informe abiertas y si deseo cerrarlas (al hacer clic en "Cerrar todo", se cierra toda la ventana de resultados, no solo la distribución), y finalmente un mensaje que pide guardar ("No"). Mi sospecha es que cuando se hace clic en la "X" para cerrar la tabla, mi referencia a VLB se elimina antes de que se pueda ejecutar el script Al cerrar.
Me doy cuenta de que podría crear un informe de la distribución y ponerlo en mi ventana, pero sería estático, lo que no quiero.
¿Alguna idea?
Re: ¿Es posible cerrar un informe cuando se cierra la mesa?Creo que su script es correcto y se ejecuta en Windows en 14.3; ¿Qué versión de JMP estás ejecutando?
La plataforma salió de la ventana.
Re: ¿Es posible cerrar un informe cuando se cierra la mesa?Hmm Ejecutando en una Mac (Mojave 10.14.6) con JMP Pro 14.3.0.
Re: ¿Es posible cerrar un informe cuando se cierra la mesa?@audrey_shull
Puede que tenga que pasar por soporte técnico. Probablemente una diferencia en el orden en que suceden las cosas en los dos sistemas operativos.
https://www.jmp.com/support/help/14-2/subscribe-to-a-data-table.shtml podría proporcionar una variación lo suficientemente diferente de onClose para que funcione; Creo que dt << onClose se está ejecutando cuando se cierra la ventana de la tabla de datos, mientras que la suscripción puede ejecutarse antes, antes de que se cierre la ventana de la tabla.
He usado el informe << onClose para cerrar el dt, pero eso es lo contrario de lo que está haciendo.
Re: ¿Es posible cerrar un informe cuando se cierra la mesa?Ok, envié un mensaje al soporte técnico, así que espero que haya una solución alternativa. No tenía conocimiento de la función "Suscribir", así que gracias por compartir eso. Desafortunadamente, eso tampoco funciona en mi sistema, probablemente la misma razón subyacente. Incluso la ejecución del "Ejemplo 1" en la entrada del índice de secuencias de comandos para Suscribir falla. Sin embargo, puedo pensar en muchos scripts pasados en los que usar eso hubiera sido útil.
Re: ¿Es posible cerrar un informe cuando se cierra la mesa? @nikles En primer lugar, gracias por un guión tan bueno para replicar el problema / pregunta. Es muy fácil ver lo que estás preguntando.
En segundo lugar, tengo que admitir que cuando copié por primera vez su script para probarlo, no copié la primera línea Nombres predeterminados aquí (1). Resulta que omitir esa línea hace que su script funcione de la manera que desea. Eso podría ser una solución si no necesita esa línea para limitar el alcance de sus variables. (Nota: sin duda, es una buena práctica usar nombres predeterminados aquí (), pero aquí está generando algún tipo de problema de alcance).
En tercer lugar, encontré que el comportamiento es consistente en Mac y Windows. (Entonces, @Craige_Hales , ¿también omitiste Nombres predeterminados aquí (1)?)
En cuarto lugar, Craige sugirió que dt << subscribe podría ser una posibilidad, pero no pude hacerlo funcionar, con o sin nombres predeterminados aquí (1); Sigo viendo el mensaje sobre otras ventanas de informes abiertas y deseo cerrarlas.
Finalmente, estoy siguiendo con nuestro equipo de desarrollo y veo si esto es algo que debería abordarse.
Re: ¿Es posible cerrar un informe cuando se cierra la mesa?Gracias Audrey! buena captura también, sí, lo dejé fuera. Probablemente tenga sentido que vlb sea local para la ventana del editor de scripts y no esté disponible cuando la ventana de la tabla de datos ejecuta onClose. Creo que una solicitud es obtener un mensaje en la ventana de registro acerca de que vlb no está definido en el contexto de la tabla.
Re: ¿Es posible cerrar un informe cuando se cierra la mesa?Gracias chicos. Desafortunadamente, creo que necesito usar Nombres predeterminados aquí (1) ya que este script se está utilizando en otros, pero esta solución puede ser útil para otros.
Pude hacer que funcione con el comando NDtH haciendo que mi referencia VLB sea global. Esto todavía no es ideal, pero ofrece algunas posibilidades.
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...");
);Sin embargo, si hay una manera de hacer que la función Suscribir funcione, me encantaría. Hay otras acciones que me gustaría realizar en mi ventana cuando se realizan cambios en la tabla. Gracias de nuevo.