複数のコマンドに変数を使用するこんにちは、みんな、
複数のコマンド ラインの代わりに、個別のコマンドの代わりに 1 つの変数を使用する方法を探しています。これを実行すると、変数に含まれる他のコマンドが実行されずに、スタッキング ウィンドウが開きます。EVAL() と PARSE() の組み合わせも試しましたが、結果は良くなりませんでした。
使用した用語が正しくない場合はお詫び申し上げます。
ご協力いただきありがとうございます!
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);
自動化とスクリプトRe: 複数のコマンドに変数を使用する
@jthi は次のように書きました:
通常、文字列だけを使用するのではなく、他の方法 (式) で構築できます (可能であれば、そうすべきだと思います)。
1 つの方法は、プレースホルダー (_cols_) を使用して、それを事前に構成された式に置き換える ( substitute ) ことです。次に例を示します。
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) ))
JMP が間違ったタイミングで式を実行するのを防ぐには [ Expr () ]、また、名前自体ではなく変数 ( name ) 内に格納されている式 ( Name Expr() )にアクセスするために、Expr() とName Expr() の「マジック」が必要です。
一見すると、ユーザーはこのオーバーヘッドがない方がよい、またはフォールバック ソリューションとしてEval(Parse(String))を使用する方がよいと判断するでしょう。しかし、この優れた講義などを利用して、ここで時間を投資することは良い考えです。
JSL を使用して効率的で堅牢なアプリケーションを開発する (EU 2018 415)
Re: 複数のコマンドに変数を使用する通常、文字列だけを使用するのではなく、他の方法 (式) で構築できます (可能であれば、そうすべきだと思います)。
Re: 複数のコマンドに変数を使用するスタックを選んだのは、それが私が実現しようとしていたことのより簡単な例のように思えたからです。最終的には、一連の管理図をフォーマットする際に、コマンド テキストのブロックの代わりに変数を使用したかったのです。
Re: 複数のコマンドに変数を使用する具体的に何をしようとしていますか? スタック内の同じ選択を複数回使用していますか?