數據表篩選器窗口不會重複使用JSL我遇到了一些有趣的問題,其中一些JSL代碼用於調用數據過濾器。 使用以下代碼選擇指定的數據,並且不顯示JSL中指定的數據過濾器窗口。 但是,如果第二次運行代碼,則會顯示“數據過濾器”窗口,並且未選擇指定的數據。 手動關閉數據過濾器並再次運行JSL後,將再次選擇指定的數據。 如果重複運行JSL代碼,則每次都會繼續這種交替行為。 任何想法為什麼會出現這種情況以及如何在不打開DF窗口的情況下強制每次運行數據過濾器?謝謝。
清除日誌();
名稱默認為此處(1);
dt = Open(“$ SAMPLE_DATA / Big Class.jmp”);
dt <<選擇排除;
dt << Clear Row States;
df = dt <<數據過濾器(
顯示窗口(0),
添加過濾器(
列(:年齡,性別,:身高),
哪裡(:年齡== {13,14,15}),
哪裡(:性別==“M”),
Where(:height> = 50&:height <= 65)
)
);
Re:數據表過濾器窗口不會重複使用JSL請參閱以下有關數據過濾器行為的JMP技術支持的官方響應。
感謝您與JMP技術支持聯繫! 如果您運行一次腳本並查看主窗口上的窗口列表,您會注意到數據過濾器確實顯示為一個不可見的窗口,如下面的屏幕截圖所示。 需要注意的一點是,每個數據表不能有多個數據過濾器。如果您要通過腳本創建基於年齡的數據過濾器,然後嘗試基於性別創建另一個數據過濾器,則無法創建性別數據過濾器,因為數據表已存在。 在您的情況下,由於第二次運行時數據過濾器已經存在,JMP會將現有的數據過濾器帶到前面,以顯示當前數據過濾器是什麼,並且它沒有更改。這向用戶發出信號,表明創建的第二個數據過濾器實際上沒有做任何事情。這是JMP中的預期行為。 為了防止顯示數據過濾器,您需要在創建新數據過濾器之前關閉數據過濾器的窗口。在下面的示例中,我將展示如何使用窗口對象引用執行此操作。但是,如果您具有可用的數據過濾器(df)句柄,則可以直接向該引用發送關閉消息。 名稱默認為此處 ( 1 ); dt = 打開 ( “$ SAMPLE_DATA / Big Class.jmp” ); dt << 選擇排除 ; dt << 清除行狀態 ; //嘗試關閉數據過濾器窗口,以防萬一打開 嘗試 ( 窗口 ( “大類數據過濾器” )<< 關閉窗口 ()); df = dt << 數據過濾器 ( 櫥窗( 0 ) 添加過濾器( 列(:年齡,性別,:身高), 哪裡(:年齡== { 13 , 14 , 15 }), 哪裡(:性別== “M” ) 其中(:height> = 50 &:height <= 65 ) ) ); 我希望這些信息對你有用。如果您有後續問題或需要澄清,請告訴我。 |
Re:數據表過濾器窗口不會重複使用JSL謝謝吉姆。 很高興知道這不是我在代碼中所做的事情。我按照你的建議聯繫了JMP支持。
Re:數據表過濾器窗口不會重複使用JSL“顯示窗口(0)”功能似乎存在問題。 它不是取元素(0)的值,而是在切換。 我會把這個報告給JMP的人
support@jmp.com