如何使用 For Each 循環的值產生新的表腳本我正在循環現有的資料表腳本,並建立每個腳本的副本並進行一些更改。
我想將這些表腳本名稱插入到產生的表腳本中。
我得到的輸出只是在生成的表腳本中插入單字“script”,而不是 scriptList 中的實際字串值
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)));
);
);
自動化和腳本編寫回复:如何使用我的 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)
))
)
);回复:如何使用我的 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)
)
)
)
);回复:如何使用我的 For Each 循環的值來生成新的表腳本謝謝你確實工作得很好
回复:如何使用我的 For Each 循環的值來生成新的表腳本JMP 14 沒有工作。
回复:如何使用我的 For Each 循環的值來生成新的表腳本For Each() 函數是 JMP 16 中的一項新功能。