Comment utiliser Copy Table Script()Bonjour à tous,
Je souhaite copier le script de la table de données d'une table récapitulative créée et recoller son code dans une table parente afin de pouvoir l'appeler ultérieurement sans avoir à l'enregistrer. Il s'agit essentiellement de simplifier l'expérience utilisateur, car il est nécessaire d'enregistrer plusieurs fichiers de tables, puis de les rouvrir pour exploiter l'analyse ultérieurement.
Je pensais que ce serait dans ce sens, mais cela ne fonctionne pas. dt1 serait la table récapitulative et dt2 serait la table parent.
Cela copierait donc le script de table de données de dt1, puis le placerait en tant que script de table dans dt2.
source_script = dt1 << Copy Table Script();
Eval(EvalExpr(
dt2 << New Script("SourceFromSummary",
Expr(Name Expr(source_script))
);
));
Tout conseil serait grandement apprécié !
Steve
Automatisation et scriptsRe : Comment utiliser le script de copie de table()Souhaitez-vous obtenir le tableau récapitulatif obtenu ou pouvez-vous simplement utiliser le script pour le créer ? Utilisez « Récupérer le script » au lieu de « Copier le script du tableau » (le tableau sera copié dans le presse-papiers).
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 : Comment utiliser le script de copie de table()Salut @jthi ,
J'espérais obtenir le tableau résultant. Le tableau récapitulatif créé provient d'une fonction « créer une table de données » et j'aimerais pouvoir l'extraire ultérieurement sans avoir à relancer l'analyse (ce qui se produit si je récupère le script de table source intégré).
Re : Comment utiliser le script de copie de table()Dans ce cas, << Get Script devrait fonctionner pour vous
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)));
));

Si vous souhaitez vraiment utiliser Copy Table Script() (je ne sais pas pourquoi vous le feriez dans ce cas), utilisez Get Clipboard() avec 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 : Comment utiliser le script de copie de table()Bon!
Je n'avais pas réalisé que je pouvais simplement utiliser le script get, j'essayais de copier l'action de la flèche rouge du script de copie de table, c'est donc ce que j'ai trouvé dans l'index de script.
Question annexe, existe-t-il un moyen de faire d'une table un « enfant » d'une table parent (comme lorsque vous créez une table récapitulative puis la liez)

Cela permettrait que lorsque vous fermez la table parent, la table principale soit fermée et que les tables puissent être réduites dans la fenêtre d'accueil.
Re : Comment utiliser le script de copie de table()Pour créer des « tables enfants », je pense qu'elles doivent être liées. Il faudrait utiliser la fonction Résumé au lieu de copier le script de table avec la commande Lien vers la table d'origine (1). Une autre option consiste à modifier le script de table et à ajouter « On Close » à la table d'origine lors de son exécution, mais il peut être difficile de garantir qu'il pointe toujours vers la bonne table (d'origine), car la commande Current Data Table() pourrait ne pas fonctionner comme prévu. Il est également important de maintenir le script de fermeture à jour lorsque de nouvelles tables sont créées. Pour cela, vous pouvez gérer les « références » avec « On Close » via des variables de table ou essayer d'utiliser « get on close » pour extraire le dernier script de fermeture et le combiner avec la nouvelle table à fermer.
Re : Comment utiliser le script de copie de table()Vous pouvez également utiliser S'abonner à la liste des tables de données, éventuellement avec des noms de tables spécifiques, pour savoir lesquelles associer à la table principale.