在尝试使用 JMP 16.2.0 (MacOS) 在 JSL 中设置列的显示宽度时,我看到了一些在 JMP 15 中没有看到的问题。
1.设置显示宽度函数似乎以两种模式运行,具体取决于它的使用方式。 如果使用硬编码的 arg 值调用它,它似乎是永久性的。
col = Column("SN");
col << Set Display Width( 200 );但是,如果使用 var arg 调用它,它会根据需要显示,但似乎不会与文件一起保存。 (或者,至少,没有按预期保存。)
x = 100;
col << Set Display Width( x );
在后一种情况下,如果文件被保存然后重新打开,它会以 200 的宽度呈现(可能是因为运行了前一个代码)。 因此,200 通过文件保存关闭并重新打开持续存在,但 100 不会。
更奇怪的是,如果我用 JMP 15 打开表格,它会将宽度呈现为 100,(以及y = col << 获取显示宽度()指令证实了这一点)。 但随后返回并使用 JMP 16 打开会呈现 200 的宽度。这表明,事实上,这两个值都与文件一起保存,并且 JMP 已在 JMP 16 中的列宽属性中添加了新模式。 作为参考,附件显示了该问题。
2. 如果设置显示宽度() function 是 JSL 脚本中的最后一个函数,它使用可变参数,它体现了一个脚本化[]错误,并且操作似乎没有发生。 但是,如果给出硬编码值,一切似乎都运行良好(并且设置的值显示在日志中)。 此函数或 JMP 16 的 JSL 脚本终止可能有新的语法要求吗? 我注意到 JMP 15 不会发生这种行为。
3. 有点不相关,但在试图理解这一点时发现,对于 JMP 16,带有换行符的字符串似乎需要至少一个其他非空白字符,否则似乎会被忽略。 不确定这是设计更改还是 SQA 疏忽。
col << Set Display Width( 200 );
y = col << Get Display Width();
Show(y); Write("\!n");
Write("---");
x=100;
col << Set Display Width( x );
y = col << Get Display Width();
Show(y);输出:
y = 200;---
y = 200;
例如,如果在字符串的换行符前面添加一个句点, ".\!n" ,换行符被识别:
y = 200;.
---
y = 200;
你好@史蒂夫特里- 看起来 <
Eval(EvalExpr(col << Set Display Width( Expr(x) )));
我们将着眼于在未来的版本中修复评估。
对于换行问题,我建议尝试“\!N”而不是“\!n”。前者会插入一个取决于宿主环境的换行符,而后者是一个特定的“换行符”字符。您在我的 Mac 上的示例似乎无需更改即可工作,但我不确定这是否可能取决于系统设置。
感谢您的解决方法, @danschikore . 在单独的 "\!n" 问题上,"\!N" 并没有什么不同——(并且 "\!n" 在 Mac 上一直运行良好)。 一位同事也证实了这种行为(在 16.1 上)。 向 JMP 团队报告的最佳方式是什么?
您好@SteveTerry - 请将换行符问题报告给support@jmp.com 。我不知道为什么我没有在我的 Mac 上看到这个问题,但他们也许能够进行一些额外的测试并创建一个问题,以便开发人员在必要时可以跟踪。