Hola a todos,
Estoy actualizando un script en el que he estado trabajando y que después de realizar el análisis, quiero guardar una imagen de la ventana del informe y luego guardar un script en la tabla de datos que abrirá la imagen si el usuario así lo desea. eso. Cada análisis generará una nueva imagen de informe y necesito que el script se guarde en la tabla de datos que hace referencia al nombre del archivo actualizado (todos están en el mismo directorio).
Nota al margen: tengo que guardar el informe como una imagen porque tengo algunas tablas de datos temporales a las que se hace referencia en la creación del informe y no quiero guardar esas tablas de datos, aunque las guardo en el script de la tabla de datos. También sería genial si alguien tuviera una solución para eso.
De todos modos, lo que me cuesta es que cuando el Nuevo script se guarda en la tabla de datos, escribe las variables en mi script principal, no los caracteres que quiero. Probé Eval Insert() y Eval(Substitute(Expr())) como formas de intentar conseguirlo, pero nada funciona.
A continuación se muestra un ejemplo de uno de esos resultados del análisis:

En realidad, el análisis crea otra tabla de datos para construir la imagen de GB en la parte inferior derecha, esta tabla de datos:

Pero, cuando finaliza el análisis, o el usuario realiza un análisis en otra columna, esta tabla de datos se elimina y ya no tengo una referencia a ella. Intenté usar el <
En cambio, tengo que guardar la ventana como png, lo cual está bien, y debería verse como la primera imagen de arriba, pero como PNG. Una iteración del código en el script donde estoy haciendo esto está aquí:
Button Box( "Save Results to DT",
path = dt << Get Path; //gets the dt's path
l = Length( path ) - Length( dt << GetName ) - 4; // takes off dt name and .jmp extension
dir = Left( path, l ); //actual path where the PNG file is supposed to be saved
If( N Items( Icols ) == 0 & N Items( Xcols ) == 0,
pic_name = "Self_Corr_" || ycols[1] || ".png"; //name of the picture
nwin[Outline Box( 1 )] << Save Picture( dir || pic_name, "png" ); //saves the report window as a PNG to the directory<BR /> full_name=dir||pic_name;
dt << New Script( "Self Corr of " || ycols[1], Open( full_name ) ); // the new script is supposed to substitute the actual dir name and pic_name, not the variables.
);
)
Crea un script para la tabla de datos que se ve así:

Pero el script debería ser este:

Donde copié/pegué lo que debería estar en el script para mostrar lo que intento que haga el script principal. Esto debería ser factible, pero todos los intentos que he hecho no funcionan.
Como se mencionó anteriormente, estoy de acuerdo con guardar los informes como PNG y el usuario simplemente abre el informe como PNG en JMP, pero si es posible, prefiero guardar las tablas de datos temporales en New Script() para que cuando el El usuario hace clic en el script, generará la tabla de datos temporal necesaria para la capacidad interactiva completa, pero sospecho que será más difícil.
¡Gracias por cualquier aporte o sugerencia!,
DS
Puede almacenar la creación de la tabla como un script de tabla si lo desea, pero estos pueden volverse bastante grandes y ocupar mucho espacio. También puede almacenar la imagen en la tabla. A continuación se muestran tres opciones diferentes, recuerde verificar cómo se ven los scripts dentro de la tabla.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Saving table creation
dt_script = dt << Get Script;
Eval(EvalExpr(
dt << New Script("Create Table", Expr(Name Expr(dt_script)));
));
// Saving image
img = Open("$SAMPLE_IMAGES/windmap.png", "png");
Eval(EvalExpr(
dt << New Script("Open Image",
New Window("Image",
Picture Box(Expr(img));
)
)
));
// Saving filepath which will open the image
file_path = "$SAMPLE_IMAGES/windmap.png";
Eval(EvalExpr(
dt << New Script("Open File from Path",
Open(Expr(file_path))
)
));
Por cierto, ¿has considerado utilizar proyectos JMP para esto?
Apoyo la sugerencia de Jarmo de buscar un proyecto JMP para la solución.
Hola @jthi y @txnelson ,
Gracias por los rápidos comentarios e ideas. Aprecio las diferentes opciones para guardar el script en la tabla de datos. Terminé optando por la imagen al final porque guardar la tabla de datos temporales y luego tener que llamar a ese script con el Nuevo script resultó ser complicado.
He considerado Proyectos para esto, pero la forma en que los usuarios interactuarán con esto no creo que sea tan útil cuando esté en formato Proyecto. Creo que podría ser el único en mi organización que utiliza Proyectos. Si eso cambia, definitivamente consideraría actualizar el código.
¡Gracias de nuevo por toda la ayuda!,
DS