Carga de scripts jsl en una tabla de datos mediante otro scriptHola,
Tengo varios scripts (XXX.jsl) que generan informes separados con varios gráficos dentro de cada uno. Además, tengo un segundo script que carga datos de un archivo Excel, modifica la tabla JMP resultante y la guarda.
Me interesaría incluir en el segundo script una sección que cargue estos scripts de informes desde una carpeta y los ponga a disposición en el cuadro superior izquierdo de la tabla JMP.
Hago esto porque creo un script JMP que mis colegas deberían usar. Simplemente deben cambiar la ruta del archivo de Excel y ejecutar el script. Con esto, deberían obtener la tabla JMP y, según su tabla actual, la opción para ejecutar los informes.
Estoy seguro de que hay una opción, pero actualmente los enfoques con, por ejemplo, include() fallaron o << guardar script en la tabla de datos falló.
Automatización y scriptingRe: Carga de scripts jsl en una tabla de datos mediante otro scriptAquí hay un ejemplo simple que agrega texto de un archivo a una tabla como script de tabla.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
dt << Delete Scripts(dt << Get Table Script Names); // demo
script_txt = Load Text File("$SAMPLE_SCRIPTS/chaosGame.jsl");
Eval(EvalExpr(
dt << New Script("S",
Expr(Parse(script_txt))
);
));
Si deseas conservar los comentarios será un poco más complicado.
Editar: Además, si no se necesitan comentarios, puedes usar Incluir con << Solo analizar
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
dt << Delete Scripts(dt << Get Table Script Names); // demo
script_expr = Include("$SAMPLE_SCRIPTS/chaosGame.jsl", << parse only);
Eval(EvalExpr(
dt << New Script("S",
Expr(Name Expr(script_expr))
);
));
Re: Carga de scripts jsl en una tabla de datos mediante otro scriptMuchas gracias por su rápida respuesta.
¿Sería posible que me explicaras un poco más esta solución?
Con "Nombres predeterminados aquí (1); establece su espacio de nombres local.
Luego abre una tabla jmp y elimina los scripts que venían con la tabla abierta, ¿correcto?
A continuación viene la parte que trata sobre el script que debe cargarse. Se define la variable script_txt, que debe ser el archivo de texto cargado desde el directorio indicado. ¿Qué hacen las últimas cinco filas de código? ¿Podrías explicarlo brevemente?
Siempre me gusta comprender a fondo la función del código. Esto me ayuda mucho a evitar errores simples pero fatales durante la implementación.
Re: Carga de scripts jsl en una tabla de datos mediante otro scriptTe sugiero leer la Guía de scripts de JMP para conocer los conceptos básicos.
- Con respecto a los nombres predeterminados aquí (1), siempre debe comenzar sus scripts con este valor, Guía de scripting > Métodos de programación > Alcance y espacios de nombres avanzados .
- La apertura de la tabla y la eliminación de scripts son solo para fines de demostración para que sea más fácil mostrar lo que está sucediendo.
- Las últimas partes utilizan la evaluación de expresiones para asegurarse de obtener el script en su tabla en el formato correcto, para que sea fácil de ejecutar. Guía de scripts > Métodos de programación > Expresiones avanzadas, macros y listas .
Re: Carga de scripts jsl en una tabla de datos mediante otro script¡Genial, gracias! ¡Funciona! Y muchas gracias por la explicación.