如何使用我的 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 循环的值来生成新的表脚本谢谢你确实工作得很好
回复:如何使用我的 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 循环的值来生成新的表脚本JMP 14 没有工作。
回复:如何使用我的 For Each 循环的值来生成新的表脚本For Each() 函数是 JMP 16 中的一项新功能。