Ciao a tutti,
Stavo cercando di implementare alcune funzionalità in uno script per semplificarmi la vita e avrei potuto imbattermi in un bug relativo al recupero del percorso delle tabelle di dati salvate / non salvate. Vorrei sapere se questo comportamento è noto / è stato visto da altri utenti o se potrebbe essere causato dal mio pezzo di codice (e in tal caso, una soluzione sarebbe molto apprezzata ovviamente :-)).
Stavo mirando a salvare un cruscotto costruito e la rispettiva tabella di dati tramite script di pulsanti all'interno del cruscotto reale. Ecco l'estratto pertinente della sceneggiatura:
//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)
)
);In condizioni normali, questo funziona abbastanza bene. Comincio a mettermi nei guai quando provo a scegliere un file già esistente tramite questa finestra di dialogo per sostituirlo, ma il vecchio file è ancora aperto. Questo - ovviamente - genera un messaggio di errore. Se ora chiudo il vecchio file e riprovo a sostituire il file, ricevo ancora un messaggio di errore, questa volta suggerendo il mio script. Come sembra (cp. di seguito), durante la seconda esecuzione, il recupero del percorso del file della tabella di dati padre restituisce un percorso di file discreto, come se la tabella di dati fosse stata salvata, ma non è così. Ho anche copiato il rispettivo estratto dal registro con un po 'oscuro e commenti aggiuntivi:
1a corsa:
dat = DataTable ("XXX");
rootpath = "XXX.jmp"; <- nome per tabella dati non salvata!
Bool = 0;
percorso = percorso file discreto ";
Impossibile salvare il file.
2a corsa:
dat = DataTable ("XXX");
rootpath = "percorso file discreto"; <- percorso del file discreto, come se la tabella dei dati fosse stata salvata
Bool = 1;
Argomento non valido in Seleziona file: directory "percorso file discreto" non trovata nell'accesso o nella valutazione di "Seleziona file", Seleziona file / * ### * / ("scegli directory per salvare ...", percorso iniziale,
{"File JMP / HTML | jmp; jsl; jrn; html", "Tutti i file | *"}, 1, 1, DashName) <- errore dovuto al fatto che il "rootpath" trasferito non esiste.
Qualcuno ha visto qualcosa del genere o qualcuno vede un difetto nel codice che potrebbe spiegare questo comportamento?
I migliori saluti,
Malte
Ogni possibilità che tu possa creare una sceneggiatura per mostrare ciò che stai dicendo, basta usare una grande classe o qualcosa del genere.
A quanto pare, stai cercando di utilizzare un percorso "percorso file discreto", che non assomiglia a un percorso per me. Il secondo argomento deve essere un percorso.