Código de retraso hasta que se complete la aplicaciónTengo un script en el que primero hago una pregunta de sí/no en un cuadro de diálogo. Si el usuario marca "sí", se ejecutará una sección de código que extrae datos de una base de datos que luego se utilizan para crear una aplicación. En esa aplicación, el usuario interactúa con los datos (tablas y gráficos) para producir un formulario en PDF, finalizar esos materiales, cerrar la aplicación y luego pasar a la siguiente estación, momento en el que obtiene la misma pregunta de sí/no, pero para una ubicación diferente. El problema es que si selecciono sí, el código se ejecuta y crea la aplicación (todo genial), pero luego continúa con el siguiente cuadro de diálogo. Una vez que aparece ese cuadro de diálogo, no puedo interactuar con mi aplicación. ¿Cómo puedo codificar esto para que el siguiente diálogo no aparezca hasta que haya terminado con mi aplicación?
Evento=diálogo("¿Hay muestras en el Sitio A?",
Vlist(Lineup(1,eventtype=botones de radio("Sí","No"),)));
Si(Evento["tipo de evento"] == 1,(
//Si el usuario selecciona Sí, entonces aquí se ejecuta el código de este sitio para generar una aplicación con gráficos y tablas (ver el ejemplo a continuación). El usuario debe seleccionar puntos en el gráfico, generar un formulario PDF y luego cerrar la aplicación antes de continuar.
);
);
En esta captura de pantalla se puede ver un botón que dice "Finalizar". No quiero que aparezca el siguiente cuadro de diálogo hasta que se haya hecho clic en él.

Ejecutando JMP 16.2.0
Automatización y scriptingExploración y visualización de datosRe: código de retraso hasta que se complete la aplicaciónPor ejemplo, puede agregar la expresión para crear el siguiente cuadro de diálogo dentro del botón Finalizar.
Re: código de retraso hasta que se complete la aplicaciónEsa es una buena idea, pero he estado jugando con el código y no puedo descubrir cómo hacer que funcione. Cuando coloco el cuadro de diálogo dentro del botón de finalización, el código crea esa aplicación y luego, antes de que pueda interactuar con ella, avanza al siguiente ciclo para crear la de la siguiente ubicación. Necesito tener una forma de pausar el código cuando la aplicación termina de crearse y reiniciarla automáticamente una vez que haya presionado el botón de finalización. No estoy seguro de si será útil, pero adjunto algo de código. El primer diálogo aparece en la línea 5, luego, si selecciona sí, extraerá datos de nuestro servidor interno... esto no se ejecutará para nadie más (líneas 24 a 638), luego la aplicación se crea a partir de la tabla de datos que creó el código anterior. (646 a 1069), luego el código se repite pero para un conjunto diferente de datos (línea 1080).
Re: código de retraso hasta que se complete la aplicaciónNo estoy tan familiarizado con las aplicaciones/paneles de control JMP (siempre los construyo yo mismo para tener control total), pero desearía que la sección después de 1080 no se ejecute hasta que el usuario presione "Finalizar".
Re: código de retraso hasta que se complete la aplicaciónSe me ocurrió una "solución": simplemente puse un comando de espera antes de la línea 1080
If( Event["eventtype"] == 1,
wait(30);
);Entonces, si seleccioné "Sí" antes, sabe que generé una aplicación y necesito tiempo para interactuar con ella. Esto le da al usuario 30 segundos para completar esa acción, "terminar" y luego pasará al siguiente componente del script... es una solución funcional, aunque no es lo que hubiera preferido. Sin duda, pone al usuario "contra reloj". Tendré que jugar con el tiempo de espera para encontrar un punto intermedio. Gracias por tu ayuda... me hizo pensar.
Re: código de retraso hasta que se complete la aplicaciónTe envié un mensaje en el que muestro lo que podría haber hecho. Básicamente, movería la segunda parte del script a expresión (haría otras separaciones para mejorar la legibilidad, pero esa debería ser la única "necesaria") y luego la agregaría a la función/script del botón5. Esto haría que la expresión se active cuando se presione el botón5. Esa opción podría requerir algo de trabajo adicional según cómo se gestionen los ámbitos y los espacios de nombres.