Re: Cómo agregar un botón para abrir un script en otra carpeta.esto podría ayudar: intente usar "incluir" en lugar de "abrir".
Names Default To Here( 1 );
dir=Get Path Variable( "SAMPLE_SCRIPTS" );
file_name = "chaosGame.jsl";
file_path = Char(Dir || file_name);
show(file_path);
Current Journal() << Append( Button Box("Chaos Game", include (file_path)))
Re: Cómo agregar un botón para abrir un script en otra carpeta.Hola @Byron_JMP Gracias por tu sugerencia, pero sigo recibiendo el mismo error.
Name Unresolved: file_path in access or evaluation of 'file_path' , file_path/*###*/
Re: Cómo agregar un botón para abrir un script en otra carpeta.Tienes un cuadro de botones que tiene un guión adjunto: Abrir (ruta_archivo) .Piensa en ese guión como en una hoja de papel.Ahora piense en hacer clic en el botón como iniciar una nueva instancia de JMP en blanco.En esta nueva instancia, le pide que ejecute el script que está en esta hoja de papel.Al ejecutar ese script, encuentra el nombre ruta de archivo y hace una búsqueda de nombres.Al ser un estado completamente en blanco, no puede determinar qué ruta de archivo se supone que significa, por lo que arroja un error.
Claramente, esto no es exactamente lo que sucede, pero sucede que cuando se hace clic en el botón, el script adjunto se ejecuta en un ámbito que no es el mismo que cuando creó el botón.Esto es cierto para todas las secuencias de comandos de cuadro de visualización.No sabrán nada sobre el alcance o las variables que estaban presentes cuando se creó el cuadro de visualización: los scripts o funciones adjuntos se ejecutan en un nuevo alcance completamente separado.
Una solución fácil es usar Eval( Eval Expr( ... Expr( ... ) ... ) ) , como esto:
LoadTableType = Function( {reportType},
Dir = Get Default Directory();
If(
reportType == "PD",
file_name = "JMP script/Load_PD.jsl";
file_path = Char(Dir || file_name);
Eval( Eval Expr(
Current Journal() << Append( Button Box( "Load PD Table", Open( Expr( file_path ) ) ) )
) )
);
);esto evalúa previamente el nombre file_path para que el script no vea un nombre sino una cadena con la ruta correcta.
Cómo agregar un botón para abrir un script en otra carpeta.Hola a todos, ¿cómo puedo hacer que cada vez que haga clic en un botón que coloqué en un diario, se ejecute el script que se encuentra en otra carpeta?
Usando una secuencia de comandos de prueba a continuación, puedo abrir con éxito la secuencia de comandos en otra carpeta. Esto está en JMP16.
Names Default To Here( 1 );
Clear Log();
Dir = Get Default Directory();
file_name = "JMP script/Load_PD.jsl";
file_path = Char(Dir || file_name);
Open(file_path);
Usando el script de prueba que hice, traté de implementarlo en mi script principal como se muestra a continuación.
El script que se muestra a continuación es solo un fragmento.
LoadTableType = Function( {reportType},
Dir = Get Default Directory();
If(
reportType == "PD",
file_name = "JMP script/Load_PD.jsl";
file_path = Char(Dir || file_name);
show(file_path);
Current Journal() << Append( Button Box("Load PD Table", Open (file_path))),
);
);Sin embargo, después de que el código principal termina de ejecutarse y se genera el botón, cada vez que hago clic en el botón, aparece este error que se muestra a continuación:
Name Unresolved: file_path in access or evaluation of 'file_path' , file_path/*###*/
Agradecería mucho cualquier consejo dado gracias!
Automatización y secuencias de comandosOrganización de contenidoAcceso a los datosventanas