在嘗試使用 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 上的示例似乎無需更改即可工作,但我不確定這是否可能取決於系統設置。