For Each ループの値を使用して新しいテーブル スクリプトを生成する方法既存のデータ テーブル スクリプトをループし、いくつかの変更を加えた各スクリプトの複製を作成しています。
生成されたテーブル スクリプトにこれらのテーブル スクリプト名を挿入します。
得られた出力は、scriptListの実際の文字列値の代わりに、生成されたテーブルスクリプトに「script」という単語を挿入するだけです。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
scriptList = dt << Get Table Script Names;
For Each({script}, scriptList,
If ((!Contains(scriptList, "Run "||script)),
dt << New Script("Run "||script,dt=Current DataTable();w=eval(dt << get table property((script)));w << set window title((script)));
);
);
自動化とスクリプトRe: For Each ループの値を使用して新しいテーブル スクリプトを生成する方法と組み合わせたいくつかの式の処理Eval Insert、Eval Expr、Parse、および Substitute を使用して、式を別の式に挿入します。動作するはずです。 以下に一例を示します。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
For Each({script_name}, dt << Get Table Script Names,
If((!Contains(script_name, "Run " || script_name)),
script_expr = dt << Get Script(script_name);
Eval(Substitute(
Expr(
dt << New Script("Run " || _script_name_,
Local({w},
w = _new_script_;
w << set window title(_script_name_)
)
);
),
Expr(_script_name_), script_name,
Expr(_new_script_), Name Expr(script_expr)
))
)
);Re: For Each ループの値を使用して新しいテーブル スクリプトを生成する方法ありがとうございます
Re: For Each ループの値を使用して新しいテーブル スクリプトを生成する方法こんにちは、元の質問ではそのように指定していなかったと思いますが、あなたのソリューションは、ターゲット スクリプト コードを新しいスクリプトにコピーするため、スクリプトの動作を変更しました。 元のスクリプトへの参照のみを保持したかったのです。 これが私が使用している最終的なスクリプトです。他の人にとっては便利かもしれません。
dt = Current Data Table();
scriptList = dt << Get Table Script Names;
For Each( {script_name}, scriptList,
If( (!Contains( script_name, "Run" ) & !Contains( scriptList, "Run " || script_name )),
Eval(
Substitute(
Expr(
dt << New Script(
"Run " || script_name,
dt = Current Data Table();
w = Eval( dt << get table property( script_placeholder ) );
w << set window title( script_placeholder );
)
),
Expr(script_placeholder), Char(script_name)
)
)
)
);Re: For Each ループの値を使用して新しいテーブル スクリプトを生成する方法JMP 14 動作しません。
Re: For Each ループの値を使用して新しいテーブル スクリプトを生成する方法For Each() 関数は、JMP 16 の新機能です。