Come usare lo script Copia tabella()Ciao a tutti,
Vorrei copiare lo script della tabella dati da una tabella di riepilogo creata in precedenza e incollarne il codice in una tabella di livello padre, in modo da poter richiamare la tabella per analisi successive senza doverla salvare altrove. In pratica, sto cercando di semplificare l'esperienza utente, che non deve più salvare più file di tabelle e poi riaprirli per utilizzarli in seguito.
Pensavo che sarebbe stato più o meno così, ma non funziona. dt1 sarebbe la tabella di riepilogo e dt2 sarebbe la tabella padre.
Quindi questo copierebbe lo script della tabella dati di dt1 e poi lo posizionerebbe come script della tabella in dt2.
source_script = dt1 << Copy Table Script();
Eval(EvalExpr(
dt2 << New Script("SourceFromSummary",
Expr(Name Expr(source_script))
);
));
Ogni consiglio sarà molto apprezzato!
Steve
Automazione e scriptingRe: Come usare lo script Copia tabella()Desideri ottenere la tabella di riepilogo risultante o puoi semplicemente utilizzare lo script per crearla? Usa << Ottieni script invece di Copia script tabella (lo copierà negli appunti).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt_summary = dt << Summary(
Group(:Age),
subgroup(:sex),
Mean(:Height),
Include marginal statistics
);
summary_script = dt_summary << get script;
Eval(EvalExpr(
dt << New Script("Summary", Expr(NameExpr(summary_script)));
));
Re: Come usare lo script Copia tabella()Ciao @jthi ,
Speravo di ottenere la tabella risultante. La tabella di riepilogo creata proviene da una funzione "crea in tabella dati" e vorrei poter visualizzare la tabella risultante in un secondo momento senza dover rieseguire l'analisi (cosa che succede se estraggo lo script della tabella sorgente incorporata).
Re: Come usare lo script Copia tabella()In tal caso, << Get Script dovrebbe funzionare per te
Names Default To Here(1);
dt = New Table("ABC",
Add Rows(10),
New Column("A", Set Each Value(1)),
New Column("B", Set Each Value(1)),
);
tablescript = dt << get script;
Eval(EvalExpr(
dt << New Script("Create Copy", Expr(NameExpr(tablescript)));
));

Se vuoi davvero usare Copy Table Script() (non so perché dovresti farlo in questo caso) usa Get Clipboard() con Parse()
Names Default To Here(1);
dt = New Table("ABC",
Add Rows(10),
New Column("A", Set Each Value(1)),
New Column("B", Set Each Value(1)),
);
dt << Copy Table Script();
Eval(EvalExpr(
dt << New Script("Create Copy", Expr(Parse(Get Clipboard())));
));
Re: Come usare lo script Copia tabella()Carino!
Non mi ero reso conto che potevo semplicemente usare get script, stavo provando a copiare l'azione della freccia rossa di copy table script ed è quello che ho trovato nell'indice degli script.
Domanda secondaria: esiste un modo per rendere una tabella "figlia" di una tabella padre (come quando si crea una tabella di riepilogo e poi la si collega)?

Ciò consentirebbe che quando si chiude la tabella padre venga chiusa anche la tabella principale e che sia possibile comprimere le tabelle nella finestra iniziale.
Re: Come usare lo script Copia tabella()Per creare "tabelle figlio", credo che debbano essere collegate -> dovresti utilizzare la funzione Riepilogo invece di copiare lo script della tabella con "Collega alla tabella originale" (1). Un'altra opzione sarebbe quella di modificare lo script della tabella e aggiungere << On Close alla tabella originale quando lo script viene eseguito, ma può essere difficile assicurarsi che punti sempre alla tabella corretta (originale), poiché Current Data Table() potrebbe non funzionare come previsto. Un'altra cosa di cui dovresti occuparti sarebbe mantenere aggiornato lo script di chiusura man mano che vengono create più tabelle. Per questo, potresti gestire i "riferimenti" con On Close tramite variabili di tabella oppure provare a utilizzare << get on close per recuperare l'ultimo script di chiusura e combinarlo con la nuova tabella con cui chiudere.
Re: Come usare lo script Copia tabella()Si potrebbe anche utilizzare l'opzione Iscriviti all'elenco delle tabelle dati, magari con nomi di tabella specifici, per sapere quali appartengono alla tabella principale.