Pausar secuencia de comandos hasta que el usuario trabaje manualmente en la tabla de datosAmigos,
Estoy tratando de pausar mi secuencia de comandos para que un usuario pueda trabajar manualmente en una tabla de datos abierta (examinar manualmente los datos y agregar/eliminar filas o columnas) antes de continuar. Intenté usar un cuadro de diálogo para lograr esto, pero no puedo trabajar en la tabla de datos hasta que se acepte el cuadro de diálogo. ¿Alguien tiene alguna sugerencia sobre cómo puedo lograr esto?
Borrar registro();
Nombres Predeterminados a Aquí ( 1 );
dt.bigclass = Abrir( "$SAMPLE_DATA/Big Class.JMP" );
Nueva ventana ("¡ESPERA!",
< Bip(),
Cuadro de lista V (
Caja de texto(
"Agregar/eliminar manualmente filas o columnas en la tabla de datos"
),
)
);
// El usuario agrega o resta filas/columnas de la tabla de datos abiertos antes de continuar
// Otras instrucciones
Re: Pausar secuencia de comandos hasta que el usuario trabaje manualmente en la tabla de datosSupongo que estás haciendo algo como esto.
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>
donde no quieres el "esto no debería mostrarse hasta que esté bien
Sin embargo, no debe hacer NADA más hasta que presione Aceptar.La forma normal en que hago esto es usando funciones y llamándolas desde el botón Aceptar.
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
action_okay = function({},
//{DEFAULT LOCAL}, //uncomment this if you want the variables to be local only (don't exist outside the function)
// put everything you want to do after okay button in here.
print("this shouldn't show until okay");
// other stuff
);
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>Re: Pausar secuencia de comandos hasta que el usuario trabaje manualmente en la tabla de datosPara este ejemplo en particular, si desea que el usuario realice operaciones manuales en una tabla, puede crear una vista de datos/cuadro de datos para esa tabla que se mostrará en la misma ventana.Por ejemplo:
Names Default To Here( 1 );
dt = New Table( "My Table" );
dt << Add Rows( 10 );
dt << New Column( "X1", Set Values( J( 10, 1, Random Normal() ) ) );
dt << New Column( "X2", Set Values( J( 10, 1, Random Uniform() ) ) );
nw = New Window( "Prepare Your Data",
hb = H List Box(
V List Box(
Text Box( "Delete Unneccesary Columns in Table and then click OK" ),
Button Box( "OK", nw << close window )
),
Panel Box( "Data Table View",
Border Box( Sides( 15 ), dt << new data box(), <<BORDER></BORDER>

Re: Pausar secuencia de comandos hasta que el usuario trabaje manualmente en la tabla de datosEl guión y la idea proporcionados por Vince deberían funcionar, debe colocar las acciones que desea realizar, después de presionar el botón, dentro de los botones llamada de función
Button Box("OK",
<<SET function=""></SET>
El script que se ejecutará después de presionar el botón "Aceptar" es este:
Imprimir("hacer cosas"); self << Cerrar ventana;
Hay otras formas de hacer esto, pero esta es probablemente la opción más fácil y comenzaría con ella.
Re: Pausar secuencia de comandos hasta que el usuario trabaje manualmente en la tabla de datosVicente,
Si entiendo la pregunta del usuario, estoy tratando de hacer algo muy similar, es decir, permitir que el usuario edite una tabla antes de continuar con el script. Tal vez no hice algo bien, pero cuando utilizo el script anterior dentro de mi script, el programa sigue ejecutándose y provoca un error porque no se han realizado las ediciones necesarias de la tabla.
Entonces, si uso modal, la secuencia de comandos se detiene pero no permite la edición de una tabla.
Si no uso modal, se permite una edición de tabla antes de presionar Aceptar, pero el script sigue ejecutándose sin la edición necesaria.
Quiero que la secuencia de comandos deje de ejecutarse y no continúe hasta que el usuario indique que se han realizado las ediciones de la tabla.
Se puede hacer esto?
Gracias de antemano por tu ayuda.
patricio carrol
Re: Pausar secuencia de comandos hasta que el usuario trabaje manualmente en la tabla de datosGracias Vince,
Eso fue fácil. Supongo que necesito leer sobre las propiedades modales.
Re: Pausar secuencia de comandos hasta que el usuario trabaje manualmente en la tabla de datosSimplemente no hagas que la nueva ventana sea modal. Luego tenga todas las acciones dentro del botón Aceptar (o cualquier botón).
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>