使用变量来执行多个命令大家好,
我正在寻找一种方法来使用一个变量代替单个命令,而不是多个命令行。当我运行此命令时,Stacking 窗口会打开,而不是执行变量中包含的其他命令。我也尝试过使用 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);
自动化和脚本回复:使用变量执行多个命令
@jthi写道:
通常,您可以通过其他方式(表达式)来构建它们,而不仅仅是使用字符串(我想说如果可以的话,您应该这样做)。
一种方法是使用占位符( _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) ))
一些Expr()和Name Expr() “魔法”是必要的,以防止 JMP 在错误的时间执行表达式 [ Expr() ] - 并获取对存储在变量(名称)中的表达式( Name Expr() )的访问,而不是名称本身。
乍一看,用户会决定最好不要这种开销 - 或者使用Eval(Parse(String))作为后备解决方案。但在这里投入一些时间是个好主意,例如借助这个精彩的讲座:
使用 JSL 开发高效、强大的应用程序 (EU 2018 415)
回复:使用变量执行多个命令通常,您可以通过其他方式(表达式)来构建它们,而不仅仅是使用字符串(我想说如果可以的话,您应该这样做)。
回复:使用变量执行多个命令我选择 Stack 是因为它看起来更能体现我想要实现的功能。最终,我想使用变量来代替命令文本块来格式化一堆控制图。
回复:使用变量执行多个命令您到底想做什么?在堆栈中多次使用相同的选择?