我知道在JSL中,我可以更改單個列上的Suppress Eval標誌,以防止對該列的公式進行求值。這對於需要一段時間才能評估的複雜公式很有用。我可以評估一次並取消評估,但保持公式不變,因此如有需要,我可以稍後再次評估。
在某些情況下,當我執行遍歷多列的操作時,我想知道Suppress Eval標誌的當前狀態,而無需實際對其進行更改。我還找不到任何方法來提取此信息。我可以將值設置為1或0,但是無法切換它,也無法獲取當前值。這可能嗎?
Names Default To Here(1);
dt = Current Data Table();
col = Column(dt, "myColumn");
col << Suppress Eval(1); //suppresses formula eval
col << Suppress Eval(0); //un-suppresses formula eval
suppress_state = col << Suppress Eval; //does not work as expected. sets suppress eval to 1.
Show(suppress_state); //prints "suppress_state = Scriptable[]" in the log. current state not returned.
我還注意到,如果Supress Eval已經設置為1,並且執行了“ col << Supress Eval”行,則會顯示以下警告:
帶有空布爾參數的消息啟用了一個已啟用的選項。 該選項保持啟用狀態。 在以前的JMP版本中,這將禁用該選項。
因此,在早期版本的JMP中,可以切換此選項,但是該功能已被刪除。
我還查看了Show Properties(col)的輸出,發現只有一個對Supress Eval的引用:
禁止評估[布爾值] [僅腳本]
因此,這意味著它是一個接受布爾參數,不返回值且只能從腳本訪問的函數?有沒有辦法獲得價值?
我不知道直接獲得它的方法,但是這段愚蠢的代碼將適用於此。
suppresseval = contains(char(:<YOURCOLUMNNAME> <<GET script=""></GET></YOURCOLUMNNAME>