如何正確清除行狀態處理程序我有一個非常簡單的行狀態處理程序,可確保給定的選定行永遠不會被取消選擇。問題是,我想關閉該功能並繼續正常操作。
下面是一個簡單的腳本,用於鎖定第 15 行始終被選中。
names default to here(1);
dt=open("$SAMPLE_DATA\big class.jmp");
x=15;
dt << select rows(x);
setrow = function({x},dt<<CLEAR select=""></CLEAR>
所以現在的問題是,如何刪除行狀態處理程序,而不關閉並重新打開數據表?我可以將行狀態處理程序更改為不同的函數,但我更願意刪除行狀態處理程序。
有人有答案嗎?
自動化和腳本編寫數據存取實驗設計大規模定制回复:如何正確清除行狀態處理程序我認為您只需將空分配給先前存儲對處理程序的引用的變量即可。 在取消分配處理程序之前,您需要使用 Wait(0) 函數調用,以確保所有更新均已完成並且腳本同步。 (感謝 Dan Schikore 提供有關等待的提示。)
請參閱此示例並在運行後檢查日誌。 只有前兩行狀態更改才會導致輸出到日誌。
Names Default To Here( 1 );
// example data set
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// example handler
f = Function( {a}, Show( a ) );
// assign handler
rs = dt << make row state handler( f );
// test handler
dt << Select Rows( 1 );
dt << Select Rows( 5 );
Wait( 0 );
// de-assign handler
rs = Empty();
// test absence of handler
dt << Select Rows( 3 );
dt << Select Rows( 9 );回复:如何正確清除行狀態處理程序這是一個老問題,但為什麼不直接設置 rs=0 呢?
回复:如何正確清除行狀態處理程序<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />下面似乎清除了行狀態處理程序(但不是當前行狀態):
清除全局變量( RS ) ;
回复:如何正確清除行狀態處理程序謝謝。
回复:如何正確清除行狀態處理程序我將 JSL 代碼複製/粘貼到 MS-Word,然後將其從 Word 複製/粘貼到此處。例如:
空函數=功能({ X } , { z } ,
z = 1 ;
) ;
RS = dt <<創建行狀態處理程序(空函數) ;
回复:如何正確清除行狀態處理程序可能不是正確的解決方案,但我將一個空函數分配給行狀態處理程序:
empty_function = function({x},{z},
z = 1;
);
rs = dt << Make Row State Handler(empty_function);
不知怎的,如果函數完全為空,它就不起作用,所以我添加了 z=1 作為“虛擬代碼”。
問候
彼得
PS:如何將示例代碼格式化為“代碼”(就像您所做的那樣)? 看來我太笨了,看不懂論壇軟件。