使用动态列表输入编写脚本“添加行”大家好,
我的日记中有一个 TableBox 作为报告表。 我可以用“添加行”填充此表,作为输入需要一个列表。 当我直接在函数中写入列表值时,这会起作用。 见下文。 当我预先准备列表并将其解析为函数时,它不再起作用,请参见下面的第二个示例。 为什么? 目标是将这个“添加行”构建到一个循环中,每次都有不同的信息。
鲍克
// possible and working
ob[TableBox(1)] << add row ({"1","2","3",4});
// not possible why?
rowContents2 = {"1","2","3",4};
ob[TableBox(1)] << add row (rowContents2);
脚本回复:使用动态列表输入编写“添加行”脚本它起作用的原因是代码只是在做,将所需的确切 JSL 构建到字符串中,然后使用 Eval(Parse(…….)) 告诉 JMP 将字符串值提交给 JMP。
如果你举你的具体例子,硬编码语法来完成你想要的是
ob[TableBox(1)] << add row ({"1", "2", "3", 4});
因此,如果可以将上述代码行构建成字符串,则可以使用 Eval(Parse()) 函数组合将该字符串提交给 JMP。这是您脚本的简单扩展,希望能说明这一点
rowContents2 = {"1","2","3",4};
// Create a character string variable with the required syntax
myString = "ob[TableBox(1)] << add row (" || char(rowContents2) || ");";
// Write the string to the log to show what it looks like
show( myString );
// Run the character string variable
Eval( Parse( myString ) );
回复:使用动态列表输入编写“添加行”脚本非常感谢!
第一个没有用。 第二种解决方案在末尾添加 2 个缺失的括号时确实有效。 我还不明白为什么它会起作用,但也许我稍后会发现。
鲍克
回复:使用动态列表输入编写“添加行”脚本尝试以下脚本中的选项。(注意:添加了 2 个尾随“)”以使语法正确,之后@鲍克观察缺失的字符)
rowContents2 = {"1","2","3",4};
ob[TableBox(1)] << add row (eval(rowContents2));
// or if necessary this should force it to work
eval(parse("ob[TableBox(1)] << add row (" || char(rowContents2) || ");"));