Utiliser une variable pour plusieurs commandesSalut tout le monde,
Je cherche un moyen d'utiliser une variable à la place des commandes individuelles à la place des multiples lignes de commande. Lorsque j'exécute ceci, la fenêtre Stacking s'ouvre plutôt que d'exécuter les autres commandes incluses dans la variable. J'ai également essayé d'utiliser des combinaisons de EVAL() et PARSE() mais sans meilleurs résultats.
Je m'excuse si la terminologie que j'ai utilisée n'est pas correcte.
Merci pour toute aide!
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);
Automatisation et scriptsRe : Utiliser une variable pour plusieurs commandes
@jthi a écrit :
Habituellement, vous pouvez les construire d'autres manières (expressions) qu'en utilisant uniquement des chaînes (et je dirais que si vous le pouvez, vous devriez).
Une approche consiste à utiliser un espace réservé ( _cols_ ) - puis à le remplacer ( substituer ) par votre expression préconfigurée - comme ici :
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) ))
Une certaine "magie" Expr() et Name Expr() est nécessaire pour empêcher JMP d'exécuter des expressions au mauvais moment [ Expr() ] - et pour accéder à l'expression ( Name Expr() ) qui est stockée dans une variable ( name ) au lieu du nom lui-même.
À première vue, un utilisateur décidera qu'il vaut mieux vivre sans cette surcharge - ou utiliser Eval(Parse(String)) comme solution de repli. Mais c'est une bonne idée d'investir du temps ici, par exemple à l'aide de cette excellente conférence :
Utiliser JSL pour développer des applications efficaces et robustes (UE 2018 415)
Re : Utiliser une variable pour plusieurs commandesHabituellement, vous pouvez les construire d'autres manières (expressions) qu'en utilisant uniquement des chaînes (et je dirais que si vous le pouvez, vous devriez le faire).
Re : Utiliser une variable pour plusieurs commandesJ'ai choisi Stack parce que cela semblait être un exemple plus simple de ce que j'essayais d'accomplir. En fin de compte, je voulais utiliser une variable pour remplacer un bloc de texte de commande lors du formatage d'un ensemble de cartes de contrôle.
Re : Utiliser une variable pour plusieurs commandesQu'essayez-vous de faire exactement ? Utiliser les mêmes sélections dans la pile plusieurs fois ?