JSLを繰り返し使用してもデータテーブルフィルタウィンドウが隠れないデータフィルターを呼び出すために使用されるJSLコードに関する興味深い問題に遭遇しています。 次のコードでは、指定されたデータが選択され、データフィルターウィンドウはJSLの指定どおりに表示されません。 ただし、コードが2回目に実行されると、[データフィルタ]ウィンドウが表示され、指定されたデータは選択されません。 データフィルタを手動で閉じてJSLを再実行すると、指定したデータが再度選択されます。 JSLコードが繰り返し実行されると、この交互の動作は毎回続きます。 これが発生する理由と、DFウィンドウを開かずにデータフィルタを毎回実行する方法を教えてください。ありがとう。
ログを消去();
名前のデフォルトはここにあります(1)。
dt = Open( "$ SAMPLE_DATA / Big Class.jmp");
dt << Excludedを選択します。
dt << Clear Row States;
df = dt <<データフィルタ(
ウィンドウを表示(0)
フィルタを追加(
列(年齢、性別、身長)、
ここで(:age == {13、14、15})、
どこで(:sex == "M")、
ここで(:height> = 50&:height <= 65)
)
;
再:データテーブルフィルタウィンドウは、JSLの繰り返しの使用に隠されたままではないデータフィルタの動作については、下記のJMPテクニカルサポートからの公式の回答を参照してください。
JMPテクニカルサポートにお問い合わせいただきありがとうございます。 スクリプトを1回実行してホームウィンドウのウィンドウリストを見ると、下のスクリーンショットに示すように、データフィルタが見えないウィンドウとして表示されていることがわかります。 注意すべきことは、各データテーブルに複数のデータフィルタを設定することはできないということです。スクリプトを使用して年齢に基づいてデータフィルタを作成してから性別に基づいて別のデータフィルタを作成しようとすると、データテーブルにすでに存在するため、性別データフィルタを作成できません。 この場合、2回目の実行時にデータフィルタがすでに存在しているため、JMPは既存のデータフィルタを前面に表示して、現在のデータフィルタが何であり、変更されていないことを示します。これは、作成された2番目のデータフィルタが実際には何もしなかったことをユーザーに知らせるためのものです。これはJMPで予想される動作です。 データフィルタが表示されないようにするには、新しいフィルタを作成する前にデータフィルタのウィンドウを閉じる必要があります。以下の例では、ウィンドウオブジェクト参照を使用してこれを行う方法を示します。ただし、利用可能なデータフィルタ(df)のハンドルがある場合は、クローズメッセージを直接その参照に送信できます。 ここにデフォルトの名前 ( 1 ; dt = 開いた ( "$ SAMPLE_DATA / Big Class.jmp" ; dt << 除外を選択 ; dt << 行の状態をクリア ; //データフィルタウィンドウが開いている場合は閉じます。 やってみる ( 窓 ( 「大クラス用のデータフィルタ」 )<< ウィンドウを閉じる ()); df = dt << データフィルタ ( ウィンドウを表示( 0 、 フィルタを追加( 列(年齢、性別、身長)、 ここで(:age == { 13年 、 14年 、 15年 、) どこで(:sex == "M" 、 ここで(:height> = 50 &:高さ<= 65 ) ) ; この情報が役に立つことを願っています。フォローアップの質問がある場合、または説明が必要な場合はお知らせください。 |
再:データテーブルフィルタウィンドウは、JSLの繰り返しの使用に隠されたままではないありがとうジム。 それが私がコードの中でやっていたことではなかったことを知っておくのは良いことです。あなたが提案したように私はJMPサポートに連絡しました。
再:データテーブルフィルタウィンドウは、JSLの繰り返しの使用に隠されたままではない"Show Window(0)"機能に問題があるようです。 要素(0)の値をとるのではなく、トグルしているようです。 これをJMP関係者に報告します。
support@jmp.com