Utilizzo di una variabile per più comandiCiao a tutti,
Sto cercando un modo per utilizzare una variabile al posto dei singoli comandi al posto di più righe di comando. Quando lo eseguo, si apre la finestra Stacking anziché eseguire gli altri comandi inclusi nella variabile. Ho anche provato a utilizzare combinazioni di EVAL() e PARSE() ma senza risultati migliori.
Mi scuso se la terminologia che ho utilizzato non è corretta.
Grazie per qualsiasi aiuto!
test_variable = "columns( :Column1, :Column2 ),
Source Label Column( \!"Label\!" ),
Stacked Data Column( \!"Data\!" ),
Move Columns( To First ),
Output Table ( \!"Test Output Table\!" )";
current data table () << Stack (test_variable);
Automazione e scriptingRi: Utilizzo di una variabile per più comandi
@jthi ha scritto:
Di solito puoi costruirli in altri modi (espressioni) piuttosto che usare solo stringhe (e direi che se puoi, dovresti).
Un approccio consiste nell'utilizzare un segnaposto ( _cols_ ) e quindi sostituirlo ( replace ) con l'espressione preconfigurata, come qui:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
cols = Expr(Columns(:height, :weight));
mycommand = Expr(current data table () << Stack (_cols_, Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Move Columns( To First ),
Output Table ( "Test Output Table" )));
Eval (Substitute ( Name Expr(mycommand),Expr(_cols_), Name Expr (cols) ))
Un po' di "magia" di Expr() e Name Expr() sono necessarie per impedire a JMP di eseguire le espressioni nel momento sbagliato [ Expr() ] e per ottenere l'accesso all'espressione ( Name Expr() ) che è memorizzata all'interno di una variabile ( name ) invece del nome stesso.
A prima vista, un utente deciderà che è meglio vivere senza questo sovraccarico o utilizzare Eval(Parse(String)) come soluzione di fallback. Ma è una buona idea investire un po' di tempo qui, ad esempio con l'aiuto di questa fantastica conferenza:
Utilizzo di JSL per sviluppare applicazioni efficienti e robuste (UE 2018 415)
Ri: Utilizzo di una variabile per più comandiDi solito puoi costruirli in altri modi (espressioni) piuttosto che usare solo stringhe (e direi che se puoi, dovresti).
Ri: Utilizzo di una variabile per più comandiHo scelto lo Stack perché sembrava un esempio più semplice di ciò che stavo cercando di realizzare. Alla fine, volevo utilizzare una variabile da utilizzare come sostituto di un blocco di testo di comando nella formattazione di una serie di carte di controllo.
Ri: Utilizzo di una variabile per più comandiCosa stai cercando di fare esattamente? Utilizzare le stesse selezioni nello stack più volte?