Hola a todos,
Estaba tratando de implementar alguna funcionalidad en un script para hacer mi vida más fácil y podría haber tropezado con un error relacionado con la recuperación de la ruta de las tablas de datos guardadas / no guardadas. Me gustaría saber si este comportamiento es conocido / ha sido visto por otros usuarios o si podría ser causado por mi código (y, de ser así, una solución sería muy apreciada, por supuesto :-)).
Tenía el objetivo de guardar un tablero construido y la tabla de datos respectiva mediante scripts de botones dentro del tablero real. Aquí está el extracto relevante del script:
//set root path to nothing
rootpath = "";
// create link to the "parent data table"
cw = current window ();
ListBivar = (cw << xpath("//OutlineBox[@helpKey='FitGroup']"));
script = ListBivar[1] << get scriptable object;
dat = script << get data table;
DashName = dat << get window title;
show (dat);
// retrieve file path of "parent data table"
rootpath = dat << get path;
show (rootpath);
Bool = Contains (rootpath, "discrete file path" );
show (Bool);
If (Bool == 1, startpath = rootpath,
Bool == 0, startpath = "discrete file path",
);
path = Pick file ("choose directory to save...", startpath, {"JMP/HTML files|jmp;jsl;jrn;html", "All files|*"}, 1, 1, DashName);
show (path);
If ( path == "", Throw (1) ,
If(Right(path, 4) != ".jmp",
path = path||".jmp";
dat << save (path),
dat << save (path)
)
);En condiciones regulares, esto funciona bastante bien. Empiezo a tener problemas cuando trato de elegir un archivo ya existente a través de este diálogo para reemplazarlo, pero el archivo antiguo todavía está abierto. Eso, por supuesto, arroja un mensaje de error. Si ahora cierro el archivo antiguo e intento nuevamente reemplazar el archivo, aún recibo un mensaje de error, esta vez insinuando mi script. Como parece (cp. a continuación), dentro de la segunda ejecución, la recuperación de la ruta del archivo de la tabla de datos principal devuelve una ruta de archivo discreta, como si la tabla de datos se hubiera guardado, lo que no es el caso. También copié el extracto respectivo del registro con un poco de comentarios oscuros y adicionales:
1ra carrera:
dat = DataTable ("XXX");
rootpath = "XXX.jmp"; <- ¡nombre para la tabla de datos no guardados!
Bool = 0;
ruta = ruta de archivo discreta ";
No se puede guardar el archivo.
2da carrera:
dat = DataTable ("XXX");
rootpath = "ruta de archivo discreta"; <- ruta de archivo discreta, como si la tabla de datos se hubiera guardado
Bool = 1;
Argumento no válido en Pick File: la "ruta de archivo discreta" del directorio no se encuentra en el acceso o la evaluación de 'Pick File', Pick File / * ### * / ("elegir directorio para guardar ...", startpath,
{"Archivos JMP / HTML | jmp; jsl; jrn; html", "Todos los archivos | *"}, 1, 1, DashName) <- error debido al hecho de que el "rootpath" transferido no existe.
¿Alguien ha visto algo como esto o alguien ve una falla en el código que podría explicar este comportamiento?
Atentamente,
Malte
Cualquier posibilidad de que puedas hacer un guión para mostrar lo que estás diciendo, solo usa clase grande o algo así.
Por lo que parece, está tratando de usar una ruta "ruta de archivo discreta", que no se parece en nada a una ruta para mí. El segundo argumento tiene que ser un camino.