Ri: Come aggiungere un pulsante per aprire uno script in un'altra cartella.questo potrebbe aiutare: prova a usare "include" invece di "open".
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)))
Ri: Come aggiungere un pulsante per aprire uno script in un'altra cartella.CIAO @Byron_JMP Grazie per il tuo suggerimento, ma continuo a ricevere lo stesso errore
Name Unresolved: file_path in access or evaluation of 'file_path' , file_path/*###*/
Ri: Come aggiungere un pulsante per aprire uno script in un'altra cartella.Hai una casella di pulsanti con uno script allegato -- Apri(percorso_file) .Pensa a quella sceneggiatura come a un pezzo di carta.Ora pensa di fare clic sul pulsante come avviare una nuova istanza JMP vuota.In questa nuova istanza, gli chiedi di eseguire lo script che si trova su questo pezzo di carta.Quando esegue quello script, trova il nome percorso del file e fa una ricerca del nome.Essendo uno stato vuoto completo, non può determinare cosa percorso del file dovrebbe significare, quindi genera un errore.
Chiaramente questo non è esattamente ciò che accade, ma è il caso che quando si fa clic sul pulsante lo script allegato viene eseguito in un ambito che non è lo stesso ambito di quando è stato creato il pulsante.Questo è vero per tutti gli script della casella di visualizzazione.Non sapranno nulla dell'ambito/variabili che erano presenti quando è stata creata la casella di visualizzazione: gli script/funzioni allegati vengono eseguiti in un nuovo ambito completamente separato.
Una soluzione facile è usare Eval( Eval Expr( ... Espr( ... ) ... ) ) , come questo:
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 ) ) ) )
) )
);
);questo pre-valuta il nome file_path in modo che lo script non veda un nome ma piuttosto una stringa con il percorso corretto.
Come aggiungere un pulsante per aprire uno script in un'altra cartella.Ciao a tutti, come posso fare in modo che ogni volta che clicco su un pulsante che ho inserito in un diario venga eseguito lo script che si trova in un'altra cartella.
Utilizzando uno script di prova di seguito sono in grado di aprire correttamente lo script in un'altra cartella. Questo è su 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 lo script di test che ho creato, ho provato a implementarlo nel mio script principale come mostrato di seguito.
Lo script mostrato di seguito è solo un frammento.
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))),
);
);Tuttavia, dopo che il codice principale termina l'esecuzione e viene generato il pulsante, ogni volta che faccio clic sul pulsante continuo a ricevere questo errore mostrato di seguito:
Name Unresolved: file_path in access or evaluation of 'file_path' , file_path/*###*/
Apprezzerei molto qualsiasi consiglio dato grazie!
Automazione e scriptingOrganizzazione dei contenutiAccesso ai datifinestre