Caricamento di script jsl in una tabella dati da parte di un altro scriptCIAO,
Ho diversi script (XXX.jsl) che generano report separati con numerosi grafici al loro interno. Ho anche un secondo script che carica i dati da un file Excel, modifica la tabella JMP risultante e la salva.
Mi piacerebbe includere nel secondo script una sezione che carichi questi script di report da una cartella e li renda disponibili nella casella in alto a sinistra della tabella JMP.
Lo faccio perché ho creato uno script JMP che i miei colleghi dovrebbero usare. Dovrebbero semplicemente modificare il percorso del file Excel ed eseguire lo script. In questo modo, otterrebbero la tabella JMP e, in base alla tabella corrente, l'opzione per eseguire i report.
Sono sicuro che ci sia un'opzione, ma attualmente gli approcci con, ad esempio, include() non riuscito o << salva script nella tabella dati non riuscito.
Automazione e scriptingRe: Caricamento di script jsl in una tabella dati da parte di un altro scriptEcco un semplice esempio che aggiunge testo da un file a una tabella come script di tabella
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))
);
));
Se si desidera conservare i commenti, la cosa sarà leggermente più complicata.
Modifica: anche se i commenti non sono necessari, puoi usare Includi con << Analizza solo
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: Caricamento di script jsl in una tabella dati da parte di un altro scriptGrazie mille per la tua rapida risposta.
Potresti spiegare meglio questa soluzione?
Con "Names Default To Here(1); imposti il tuo spazio dei nomi locale.
Quindi apri una tabella jmp ed elimini gli script forniti con la tabella aperta, corretto?
Segue la parte relativa allo script da caricare. Definisci la variabile script_txt, che dovrebbe corrispondere al file di testo caricato dalla directory indicata. A cosa servono le ultime cinque righe di codice? Potresti spiegarlo brevemente?
Mi piace sempre capire nel dettaglio cosa fa il codice. Questo mi aiuta molto a evitare errori semplici ma fatali durante l'implementazione.
Re: Caricamento di script jsl in una tabella dati da parte di un altro scriptPer le nozioni di base, consiglio di leggere la Guida allo scripting JMP .
- Per quanto riguarda i nomi predefiniti qui (1); dovresti sempre iniziare i tuoi script con questo, Guida agli script > Metodi di programmazione > Ambito avanzato e spazi dei nomi .
- L'apertura della tabella e la rimozione degli script sono solo a scopo dimostrativo, per rendere più semplice la visualizzazione di ciò che sta accadendo.
- Le ultime parti utilizzano la valutazione delle espressioni per assicurarsi di inserire lo script nella tabella nel formato corretto, in modo che sia facile da eseguire. Guida alla creazione di script > Metodi di programmazione > Espressioni, macro ed elenchi avanzati .
Re: Caricamento di script jsl in una tabella dati da parte di un altro scriptOttimo, grazie, funziona! E grazie mille per la spiegazione.