行状態ハンドラーを正しくクリアする方法特定の選択された行が選択解除されないようにする非常に単純な行状態ハンドラーがあります。問題は、その機能をオフにして、通常の操作を続行したいということです。
これは、行 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>
そこで問題は、データ テーブルを閉じて再度開く以外に、Row State Handler を削除するにはどうすればよいかということです。行状態ハンドラーを別の関数に変更することはできますが、行状態ハンドラーだけを削除したいと考えています。
誰か答えがありますか?
データ表スクリプティングRe: Row State Handler を正しくクリアする方法以前にハンドラーへの参照を格納した変数に空を割り当てるだけでよいと思います。 ハンドラーの割り当てを解除する前に、Wait( 0 ) 関数呼び出しを使用して、すべての更新がキャッチされ、スクリプトが同期していることを確認する必要があります。 (Wait に関するヒントを提供してくれた Dan Schikore に感謝します。)
この例を参照し、実行後にログを調べてください。 最初の 2 つの行状態の変更のみが、ログへの出力を引き起こします。
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 );Re: Row State Handler を正しくクリアする方法古い質問ですが、単に rs=0 を設定しないのはなぜですか?
Re: Row State Handler を正しくクリアする方法<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />以下は、行の状態ハンドラーをクリアするようです (ただし、現在の行の状態はクリアしません)。
グローバルをクリア( rs ) ;
Re: Row State Handler を正しくクリアする方法ありがとう。
Re: Row State Handler を正しくクリアする方法JSL コードを MS-Word にコピー アンド ペーストし、Word からここにコピー アンド ペーストします。例えば:
空の関数=関数({バツ} 、 {ぜ} 、
ぜ= 1 ;
) ;
rs = dt <<行状態ハンドラの作成(空の関数) ;
Re: Row State Handler を正しくクリアする方法おそらく正しい解決策ではありませんが、空の関数を行状態ハンドラーに割り当てます。
empty_function = function({x},{z},
z = 1;
);
rs = dt << Make Row State Handler(empty_function);
関数が完全に空だとどうもうまくいかないので、「ダミーコード」として z=1 を追加しました。
よろしく
ピーター
PS: サンプル コードを「コード」としてフォーマットするにはどうすればよいですか (あなたがしたように)。 フォーラム ソフトウェアを理解するには、私は愚かすぎるようです。