Cómo implementar la función "Guardar su trabajo en un diario JMP" usando JSLCon base en la información compartida a continuación, es posible crear enlaces a un JMP Journal utilizando el método "abrir todos los archivos".
https://community.jmp.com/t5/Statistical-Thinking-for/Saving-Your-Work-in-a-JMP-Journal/ta-p/271841
Me gustaría implementar una función en la GUI donde se pueda hacer clic en un botón para crear un enlace a un diario similar al método que se muestra en el video al que se hace referencia (sin transferir toda la interfaz de la GUI al Diario, sino solo creando un enlace). El JSL para crear un enlace a un diario solo permite conectar tablas de datos. ¿Cómo puedo crear un enlace para todos los gráficos en la nueva ventana? Agradezco cualquier ayuda en este asunto.
Por ejemplo, ¿cómo puedo transferir la siguiente ventana nueva a un diario JMP y presentarla en forma de enlace?
//
Los nombres predeterminados están aquí (1);
dt = Open( "$DATOS_DE_MUESTRA/Big Class.jmp" );
nw2= Nueva Ventana( "Nueva ventana",
Bivariado( y( :peso ), x( :altura ) );
);
nw2 << Guardar script ByGroup en el diario;
Modelado estadístico avanzadoAutomatización y scriptingAnálisis y modelado de datos básicosAcceso a datosRe: Cómo implementar "Guardar su trabajo en un diario JMP" usando JSLNo estoy exactamente seguro de lo que quieres, pero ¿podría ser esto?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw2 = New Window( "New window",
biv = Bivariate( y( :weight ), x( :height ) )
);
biv << Save ByGroup Script to Journal;
Current Journal() << append( ob = Outline Box( "All Files" ) );
ob << Add All Open Files;
PD: Utilice el ícono JSL en la parte superior de la ventana de vista previa al ingresar JSL. Facilita la lectura y la comprensión del código.
Re: Cómo implementar "Guardar su trabajo en un diario JMP" usando JSL
Este es exactamente el resultado que quería.
Además del método de "agregar todos los archivos abiertos", ¿hay alguna manera de agregar solo un archivo abierto con un "nombre especificado" específico? Por ejemplo, agregar solo el enlace de "Nueva ventana" en la lista de diarios.
Re: Cómo implementar "Guardar su trabajo en un diario JMP" usando JSLDebería haberte indicado el Índice de secuencias de comandos (en el menú desplegable Ayuda) en mi primera respuesta a tu pregunta. El Índice de secuencias de comandos te mostrará los mensajes que se pueden pasar a los objetos, como el mensaje Agregar todos los archivos abiertos. En mi primera respuesta, notarás que el mensaje se envía a un OutlineBox() al que hace referencia la variable "ob". Si miras la Guía de secuencias de comandos y seleccionas OutlineBox, verás todos los mensajes que puedes especificar para agregarle elementos.

Re: Cómo implementar "Guardar su trabajo en un diario JMP" usando JSLCreo que no he explicado el problema con claridad. Lo que quiero preguntar es si "agregar todos los archivos abiertos" envía automáticamente todos los archivos JMP abiertos actualmente como objetos vinculados. Sin embargo, lo que quiero es que el usuario pueda seleccionar solo los archivos deseados de estas ventanas abiertas, en lugar de agregarlos todos, y no usar la "Referencia de Agregar Archivo" para agregar archivos guardados. Como se muestra en la siguiente imagen, quiero que el usuario pueda seleccionar el "archivo abierto" que desea agregar.

Re: Cómo implementar "Guardar su trabajo en un diario JMP" usando JSLAl parecer, mi respuesta anterior no fue muy clara. El hecho de que le haya indicado el índice de secuencias de comandos y los distintos mensajes que se pueden pasar a un cuadro de esquema tiene como objetivo indicarle una buena fuente para averiguar cómo escribir el JSL para resolver los requisitos específicos que tiene.
Re: Cómo implementar "Guardar su trabajo en un diario JMP" usando JSLGracias por tu respuesta. Entiendo lo que quieres decir. Estás diciendo que necesito enviar los elementos que quiero guardar al cuadro de esquema para grabarlos. Sin embargo, actualmente solo sé que se puede usar "ob << agregar todos los archivos abiertos" para enviar todos los archivos abiertos a la vez. No sé cómo enviar un archivo abierto específico al cuadro de esquema. ¿Puedes darme algunas sugerencias?
Además, tengo una pregunta adicional. Cuando uso "ob << add all open files" y el enlace aparece en el diario, noté que la funcionalidad de los botones parece desaparecer. Por ejemplo, en el JSL que se muestra a continuación, inicialmente había un botón, pero parece que falta después de hacer clic en el enlace en el diario. ¿Cómo puedo hacer que la funcionalidad del botón siga existiendo?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw2 = New Window( "New window",
outputGButton = Button Box( "Test", print("test");
),
biv = Bivariate( y( :weight ), x( :height ) )
);
nw2 << Save ByGroup Script to Journal;
Current Journal() << append( ob = Outline Box( "All Files" ) );
ob << Add All Open Files;Re: Cómo implementar "Guardar su trabajo en un diario JMP" usando JSLEl JSL de su última respuesta crea un cuadro de visualización de objeto de ventana con una variable denominada "nw2" que se utiliza para permitir hacer referencia a ese cuadro de visualización. La acción predeterminada de un objeto de ventana es crear una nueva ventana de visualización.
nw2 = New Window( "New window",
Dentro del objeto Ventana hay un cuadro de visualización de cuadro de botón con el nombre "Prueba" y un script, "Print("test")". con una variable llamada "OutputGButton" que se utiliza para hacer referencia al cuadro de botón.
outputGButton = Button Box( "Test", print("test");
)
El siguiente objeto dentro del objeto de ventana es el JSL para ejecutar una plataforma bivariada, con una variable denominada "biv" que se utiliza para hacer referencia al objeto de la plataforma bivariada. La acción predeterminada de la plataforma bivariada es ejecutar un análisis bivariado y mostrar el resultado en una nueva ventana o, en este caso, mostrar el resultado dentro del objeto de ventana nw2. Se pasan 2 elementos a la plataforma bivariada. El peso de la columna se pasa al elemento Y y la altura de la columna se pasa al elemento X.
biv = Bivariate( y( :weight ), x( :height ) )
En este punto del JSL, la definición del objeto de ventana nw2 se completa con un cierre ")"
Voy a entrar en este nivel de detalle para ilustrar cómo las siguientes líneas dentro del script interactúan con el objeto de ventana nw2 o con uno de los objetos dentro del objeto de ventana nw2.
Cada uno de los objetos definidos tiene mensajes que se les pueden pasar. Los diferentes tipos de objetos tienen una lista diferente de mensajes que se les pueden pasar. El objeto de ventana nw2 tiene mensajes como "Establecer título de ventana", "Traer ventana al frente", "Cerrar ventana", etc. La lista completa de mensajes que se pueden enviar a un objeto de ventana se encuentra en el Índice de secuencias de comandos

en el script actual
nw2 << Save ByGroup Script to Journal;
Tiene el mensaje "Guardar script de ByGroup en el diario" que se pasa al objeto de ventana nw2. Sin embargo, ese mensaje no es un mensaje disponible para un objeto de ventana.
Guardar script ByGroup en diario es un mensaje que está disponible para las plataformas JMP.
El único objeto en el script al que se puede pasar este mensaje es la plataforma Bivariate a la que hace referencia la variable biv
biv << Save ByGroup Script to Journal;
Sin embargo, cuando se utiliza de esta manera, el script que se pasa al diario solo contiene el JSL para ejecutar Bivariate, no el script para ejecutar el JSL completo que crea el objeto de ventana con su cuadro de botones y la plataforma Bivariate.
Entonces, lo que hay que hacer es escribir el JSL que coloca en un diario un cuadro de botón que contenga todo el JSL que está actualmente en la definición del objeto de ventana nw2.
Básicamente, lo que hace el script Save ByGroup en Journal es crear un cuadro de botones con un script específico. Si el requisito es tener algo diferente en el cuadro de botones que la funcionalidad dada, entonces es responsabilidad del usuario escribir el código para realizar los cambios. A continuación, se muestra un script que hace lo mismo que Save ByGrooup... pero agrega el cuadro de botones especificado antes de la salida de Bivariate
Names Default To Here( 1 );
//dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
file = pick file();
dt = open(file);
biv = dt << Bivariate( y( :weight ), x( :height ), invisible );
theScript = Char( biv << get script );
biv << close window;
Eval(
Parse(
"New Window( \!"My Journal\!",
<<JOURNAL></JOURNAL>
<P>También utiliza la adición Menú(1) a Agregar todos los archivos abiertos, para permitir que el usuario elija los archivos que desea agregar.</P>Re: Cómo implementar "Guardar su trabajo en un diario JMP" usando JSLAquí es menos obvio que en muchos casos, pero, como Jim estaba aludiendo, el Índice de secuencias de comandos proporciona la solución. << Agregar todos los archivos abiertos tiene un argumento opcional que le permitirá elegir los archivos que desea vincular en el Cuadro de esquema.

ob << Add All Open Files( Menu( 1 ) );
