Exactamente recrear una nueva ventana() en su estado exacto<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy creando una nueva ventana dinámica () con x cantidad de pestañas y gráficos (otras cosas).¿Hay algo como Eval(dt << Get Script) que recreará la ventana exactamente?Mantener todas las funciones de los botones completamente intactas y saber dónde estaba de manera efectiva.
En este momento, si lo hago, ni siquiera puedo crearlo usando eval(nw<
Editar* Sólo para que quede claro.Estoy intentando recrear una ventana sin saber exactamente qué hay dentro de ella. Este es el ejemplo que se me ocurrió para mostrar de qué estoy hablando:
Los nombres predeterminados están aquí ( 14 );
cwd = convertir la ruta del archivo ( "./" );
Nueva ventana ( "Prueba" ,
cuadro de lista (
TB = cuadro de pestañas (
"Pestaña1" ,
Caja de panel ( "Pestaña 1" ,
libras = cuadro de lista ( directorio de archivos ( "$MUESTRA_DATOS" )),
caja de botones ( "Abierto" ,
archivo = (lb << Ser seleccionado )[ 1 ];
dt = Abierto ( "$SAMPLE_DATA\" ||archivo)
)
),
)
),
cuadro de lista (
Caja de botones ( "Atrás" , tb<< Establecer seleccionado ((tb << Ser seleccionado )- 1 )),
Caja de botones ( "Próximo" ,
nueva pestaña = evaluar (otras_cajas[(tb<< Ser seleccionado )]);
TB<< Adjuntar ( "Pestaña" , nueva pestaña);
TB<< Establecer seleccionado ((tb<< Obtener seleccionado )+ 1 )
)
)
);
otras_cajas = {
PanelBox ( "En blanco, porque... ¿razones?" ),
PanelBox ( "Nombres de columnas" ,
cuadro de lista (td, todos)
)
};
Parece que el consenso general es no. Así que lo marcaré como respondido.
Re: Recrear exactamente una nueva ventana() en su estado exactoGracias.Disfrutar.
Re: Recrear exactamente una nueva ventana() en su estado exactoLo siento, estaba bromeando.Sabía que no estabas creando un videojuego.
A continuación, mi ejemplo muestra una metodología y es independiente.No creé un botón mágico para ti.No se puede simplemente robar una metodología.Me hace reír que pensaras que podías simplemente incluir mi código en el tuyo y esperar que funcionara.Pero para responderle, las ventanas de la derecha nunca cambian y parece que el código replica esa ventana exactamente cada vez.Tendrías que comparar de arriba a abajo.
No me pagan por ayudar a la gente en estos foros y se me acabó la paciencia.Le sugiero que regrese, lea el código y comprenda lo que está haciendo.Espero que seas lo mejor.
Re: Recrear exactamente una nueva ventana() en su estado exactoGracias, es útil pero solo obtiene los valores seleccionados.Estoy buscando más una duplicación de la ventana misma.
Re: Recrear exactamente una nueva ventana() en su estado exactoNo, no crear un videojuego.De ahí la palabra análogo. He aquí un ejemplo:
Los nombres predeterminados están aquí ( 14 );
cwd = convertir la ruta del archivo ( "./" );
Nueva ventana ( "Prueba" ,
cuadro de lista (
TB = cuadro de pestañas (
"Pestaña1" ,
Caja de panel ( "Pestaña 1" ,
libras = cuadro de lista ( directorio de archivos ( "$MUESTRA_DATOS" )),
caja de botones ( "Abierto" ,
archivo = (lb << Ser seleccionado )[ 1 ];
dt = Abierto ( "$SAMPLE_DATA\" ||archivo)
)
),
),
Caja de botones ( "Recrear" ,
tabContador = 1 ;
lista_texto = { "" };
incluir (ruido|| "/recreateWindow2.jsl" )
)
),
cuadro de lista (
Caja de botones ( "Atrás" , tb<< Establecer seleccionado ((tb << Ser seleccionado )- 1 )),
Caja de botones ( "Próximo" ,
nueva pestaña = evaluar (otras_cajas[(tb<< Ser seleccionado )]);
TB<< Adjuntar ( "Pestaña" , nueva pestaña);
TB<< Establecer seleccionado ((tb<< Obtener seleccionado )+ 1 )
)
)
);
otras_cajas = {
PanelBox ( "En blanco, porque... ¿razones?" ),
PanelBox ( "Nombres de columnas" ,
cuadro de lista (td, todos)
)
};
Ahora, cuando ejecuto esto, obtengo algo como esto cuando ejecuto junto a lo que obtengo cuando presiono recrear.

Aquí es después de que selecciono una tabla de datos, la abro y luego presiono Siguiente.

Aquí es cuando presiono siguiente nuevamente.

Ahora te pediría que marques las diferencias entre las imágenes izquierda y derecha.Cuando digo que esto no funciona es porque lo intenté.A menos que no entienda bien lo que usted llama trabajar o cómo usar su script.Pero mi expectativa es que la derecha debería verse exactamente como la izquierda (suponiendo que haya abierto las tablas de datos adecuadas).No sólo eso, sino que todos los botones de todas las pestañas también deberían funcionar.
Re: Recrear exactamente una nueva ventana() en su estado exactoLo siento, no me di cuenta de que estabas creando un videojuego.Como tal, recomendaría centrarse primero en construir el motor del juego, luego sería una cuestión sencilla incorporar en él los estados de guardado.
Para otras personas que leen este foro y desean una forma más sencilla de recrear una ventana y tampoco comprenden la metodología.Adjunto un ejemplo más complejo que demuestra la robustez y simplicidad.
Ejecutará recreateWindow.jsl, que le solicitará la ruta a recreateWindow2.jsl.
Avíseme si tiene alguna pregunta sobre la ejecución de estos archivos.
Re: Recrear exactamente una nueva ventana() en su estado exactoNo sé si alguna vez has usado emuladores para juegos antiguos de Nintendo o no, pero esto usa algo llamado estado de guardado que es análogo a esto.
Lo que quiero es un estado guardado. Algo que guarde exactamente en qué nivel estoy, dónde estoy en la pantalla, etc. Decirme que simplemente reinicie el juego no es lo que estoy buscando.
Este método resuelve un problema diferente.No veo cómo eso es útil para esto.
De acuerdo en desacuerdo, supongo. No quise ofender.Perdón por no explicarme correctamente originalmente.
Re: Recrear exactamente una nueva ventana() en su estado exactoSi tienes algo que funciona, no voy a insistir más.Pero déjame aclarar lo que dijiste arriba.
Este MÉTODO hace funciona para usted porque la información proporcionada por el usuario en la pestaña 1 se proporcionará para crear la pestaña 4 (o cualquier pestaña).
Si simplemente vuelve a ejecutar el script, el usuario tendrá que pasar por las pestañas 1 a 3 para volver a la pestaña 4 donde estaba.Esto es cierto, pero no se aplicaría. EL MÉTODO , esto sólo sería aplicar el ejemplo.
"En este momento tengo que crear un script que incluya todas las funciones necesarias y lo guarde en un jsl (bastante similar a lo que dices, excepto que tengo que crearlo sobre la marcha)".
¿Por qué tienes que crearlo sobre la marcha si ya está creado? Es decir, tienes un script que puede compilarlo una vez, ¿por qué crear un segundo script para compilarlo dos veces?
Re: Recrear exactamente una nueva ventana() en su estado exactoMis disculpas, debí haber planteado mal mi problema.Este método no funciona para mí porque la información proporcionada por el usuario en la pestaña 1 se proporcionará para crear la pestaña 4 (o cualquier pestaña).Si vuelvo a ejecutar el script, el usuario tendrá que pasar por las pestañas 1 a 3 para volver a la pestaña 4 donde estaba.Y las pestañas no están especificadas, pueden ser cualquier cosa.En este momento tengo que crear un script que incluya todas las funciones necesarias y lo guarde en un jsl (bastante similar a lo que estás diciendo, excepto que tengo que crearlo sobre la marcha). Es un poco confuso, eso es todo.Me ocuparé si no hay una mejor manera.Gracias.
Re: Recrear exactamente una nueva ventana() en su estado exactoEscribí un script que captura qué pestaña se seleccionó, así como los valores de los cuadros de edición de texto, los cuadros de edición de números, los cuadros combinados y los cuadros de lista, y los almacena en una matriz bidimensional global cuando se cierra la ventana. Cuando se abre la ventana, los valores se establecen en los valores capturados cuando se cerró la ventana.
He incluido una ventana de ejemplo en el script para mostrar la funcionalidad, pero las funciones getValues y setValues son las que se utilizan para capturar el estado y restablecer el estado cuando el script se ejecuta nuevamente.
Limitaciones:
1. Este código no tiene en cuenta ningún cuadro de visualización creado dinámicamente. Deberías ajustar el código para tener en cuenta eso.
2. Este código no vuelve a ejecutar ninguna de sus plataformas. Puede ajustar el código según sea necesario para hacerlo.
3. Cuando cierra JMP, el estado se pierde. Sin embargo, puede guardar la matriz en un archivo de texto en lugar de una variable global y los valores se pueden recuperar en todas las instancias de JMP.
4. No he implementado casillas de verificación en este script (ni en ningún otro cuadro de visualización que esté olvidando).
Se adjunta el guión.
Déjame saber si tienes alguna pregunta sobre el guión.
Re: Recrear exactamente una nueva ventana() en su estado exactoNo estoy seguro de qué decirte.Mi solución recrea la ventana exactamente, k Mantiene todas las funciones de los botones completamente intactas y puede saber en qué pestaña se encuentra y todo lo que se solicita en el OP.
Además, Eval(nw<Re: Recrear exactamente una nueva ventana() en su estado exacto
Lo estoy creando con un script pero el usuario elegirá cómo quiere que se vea la ventana (qué tablas de datos abrir, etc.).Y si estoy en la pestaña (2) cuando presiono guardar estado, quiero poder volver a abrir en el estado de guardar, con la pestaña (2) actualmente seleccionada y todos los informes y tablas abiertos en la misma posición.En este momento estoy creando (intentando crear) una función para extraer todas las funciones relevantes en una cadena y luego simplemente evaluarla (analizarla).Se deja expuesto a mis errores mucho más que algo simple como Eval(nw<Re: Recrear exactamente una nueva ventana() en su estado exacto
Supongo que creaste la ventana dinámica con un script.En cuyo caso podría hacer que el botón ejecute el script nuevamente.
los nombres por defecto están aquí ( 1 ) ;
dt = abierto ( "$SAMPLE_DATA/Gran Clase.jmp" ) ;
noroeste = Nueva ventana ( "prueba" , cuadro de lista ( "la secuencia de comandos" ,
bivariado ( Y ( : altura ) , X ( : peso ) ) ;
Distribución (
Distribución continua (
Columna ( : altura ) ,
Personalizar estadísticas resumidas ( Significar ( 0 ) )
) ,
Distribución Continua (
Columna ( : peso ) ,
Personalizar estadísticas resumidas ( Significar ( 0 ) )
)
) ;
caja de botones ( "Recrear ventana" ,
incluir ( "ruta\a\este\script\recreateWindow.jsl" ) ;
)
)
) ;
Re: Recrear exactamente una nueva ventana() en su estado exactoEstarías en lo cierto en que un guión de sesión no es lo que quiero.Si intento eso, lo único que hace es abrir la tabla de datos que tengo abierta.Ni siquiera intenta crear una nueva ventana().
Además, probé eval(nw< bueno un Y tiene sentido por qué no funciona, solo esperaba que hubiera una solución fácil en lugar de tener que recrear todo si no sé cómo será todo.
Mantendré viva la esperanza un poco más.
Sólo para aclarar lo que estoy pidiendo:
cuadro1 = PanelBox ( "1" , teb = Cuadro de edición de texto ( "Esto es una prueba" ), Caja de botones ( "Imprimir" , imprimir (teb<< Obtener texto )));
caja2 = PanelBox ( "2" , teb = Cuadro de edición de texto ( "Esto es una prueba" ), Caja de botones ( "Imprimir" , imprimir ((teb<< Obtener texto )|| "Charlie" )));
caja3 = PanelBox ( "3" , teb = Cuadro de edición de texto ( "Esto es una prueba" ), Caja de botones ( "Imprimir" , imprimir ((teb<< Obtener texto )|| "Susi" )));
nw = Nueva ventana ( "Ejemplo" ,
tuberculosis = Cuadro de pestañas ()
);
cosas = evaluador ({cuadro1, cuadro3});
para (yo= 1 , yo<= nitems (cosas), i++,
TB<< Adjuntar ( carbonizarse (yo), cosas )
);
nw<< Obtener guión
/* devoluciones
V Cuadro de lista(
V Cuadro de lista(
Cuadro de pestaña(
Cuadro de página de pestaña (
Título ("1"),
Cuadro de panel (cuadro de edición de texto ("Esto es una prueba"), cuadro de botones)
),
Cuadro de página de pestaña (
Título ("2"),
Cuadro de panel (cuadro de edición de texto ("Esto es una prueba"), cuadro de botones)
)
)
)
)
*/
No tiene título de ventana ni scripts para el cuadro de botones.Además, simplemente no se ejecuta.
Re: Recrear exactamente una nueva ventana() en su estado exactoDesafortunadamente, " A Guión de sesión captará la mayoría de las funciones" no parece captar lo que Vince desea.Los cuadros de pestañas dinámicos no se manejan bien.En una versión modificada de mi script anterior, lo ejecuté, luego guardé el script de sesión y luego lo examiné.Los cuadros de pestañas no se transfieren al script de sesión.
Guión inicial
Nombres predeterminados aquí ( 1 ) ;
dt = Abierto ( "$SAMPLE_DATA/clase grande.jmp" ) ;
Nueva ventana ( "prueba" , Cuadro de pestañas ( "pestaña 1" , vlb = Cuadro de lista V () ) ) ;
Si ( Modificación ( Día ( Hoy () ) , 2 ) == 0 ,
x1 = Cuadro de lista V (
Cuadro de pestañas (
"Primero bivariado" ,
vivac = bivariado ( Y ( : altura ) , X ( : peso ) ) ,
dist. = Distribución ( Distribución nominal ( Columna ( : edad ) ) )
)
) ,
x1 = Cuadro de lista V (
Cuadro de pestañas (
"Distribución primero" ,
dist. = Distribución ( Distribución nominal ( Columna ( : edad ) ) ) ,
vivac = bivariado ( Y ( : altura ) , X ( : peso ) ) ;
)
)
) ;
vlb << adjuntar ( x1 ) ;
El guión de la sesión
Abierto ( "C:\Archivos de programa\SAS\JMPPRO\12\Samples\Data\Big Class.jmp" , límites de la ventana ( 275 , 484 , 1288 , 1141 ) ) ;
Nueva ventana ( "prueba" ,
Cuadro de lista V (
Distribución ( Distribución nominal ( Columna ( : edad ) ) ) ,
bivariado ( Y ( : altura ) , X ( : peso ) )
)
) << Mover ventana ( 722 , 15 ) << Ventana de tamaño ( 488 , 1025 ) << Establecer icono de ventana ( "Archivo de informe" ) ;
Re: Recrear exactamente una nueva ventana() en su estado exactoA Guión de sesión Captará la mayoría de las características de sus informes personalizados y cambios interactivos, incluido un informe compuesto como en el ejemplo de Jim. Pero también guardará código para recrear otras ventanas y tablas que quizás no le interesen.
Puede guardar un script de sesión en cualquier momento desde la Archivo menú.
También se puede configurar en las preferencias para guardar siempre un script de sesión al salir de JMP.
Re: Recrear exactamente una nueva ventana() en su estado exactoSi bien JMP puede crear muy bien un script para recrear cualquier plataforma individual, no lo traslada a las ventanas de visualización creadas por el usuario que se componen de esas plataformas.
El siguiente script es un ejemplo muy simple que ilustra que JMP NO crea scripts utilizables a partir de ventanas de visualización definidas por el usuario.
los nombres por defecto están aquí ( 1 ) ;
dt = abierto ( "$SAMPLE_DATA/Gran Clase.jmp" ) ;
noroeste = Nueva ventana ( "prueba" , cuadro de pestañas ( "la secuencia de comandos" ,
bivariado ( Y ( : altura ) , X ( : peso ) ) ;
Distribución (
Distribución continua (
Columna ( : altura ) ,
Personalizar estadísticas resumidas ( Significar ( 0 ) )
) ,
Distribución continua (
Columna ( : peso ) ,
Personalizar estadísticas resumidas ( Significar ( 0 ) )
)
) ;
)
) ;
RR = noroeste << obtener guión ;
espectáculo ( RR ) ;
evaluar ( RR ) ;