追加されたボックスの位置までウィンドウがスクロールしないようにする方法はありますか?次のサンプル スクリプトでは、[スプラインの追加] ボタンを押すと、前のスプラインの半分のラムダ値を持つ新しいスプラインが追加され、ボタンを 6 回ほど押すと、ウィンドウがグラフからスクロールして、スプラインの位置まで移動します。新たに追加された制御スプライン。
これは一例です。解決策は、単に他の管理図を表示から削除することではありません。実際のコードでは、biv << (Curve[1] << Report( 0 )) コマンドを使用して管理図を削除していますが、それでもスクロールします。
ご協力をいただければ幸いです。
ありがとう!
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
obj << Fit Spline( n, Standardized );
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate( Y( :Weight ), X( :Height ) );
obj << Fit Spline( n, Standardized );
)
);セレクターを備えたタブ付きレポートの使用を検討したことがありますか?下の写真をご覧ください。それとも、ビューごとに複数のグラフを並べて表示するページを作成していますか。
また、他の代替手段は次のとおりです。
- 折りたたまれた (非表示の) ボックスを含む 2 つのスプラインを使用して二変量を作成します。 ユーザーが値またはボタンを選択するまで、2 番目のスプラインの線幅を 0 に設定して、表示されないようにします。 ユーザーが 2 番目のスプラインの値を選択できるようにします。 言い換えれば、大量のスプラインを追加するのではなく、平滑化係数を 1 つ変更するメッセージを送信するだけです。 そうすればジャンプはなくなります。
- UI メッセージのフィット スプラインを使用する代わりに、グラフィックの追加スクリプトを使用して曲線を追加するように、[スプラインの追加] ボタンの動作を変更します。これには追加のスクリプトが必要になります。関数を使用して係数を取得し、評価し、色の選択をし、グラフィックス スクリプトを追加し、
オプション #1 が最も簡単です
JMP UI スライダーはエミュレートしようとしているものを予測し、ユーザーは平滑化係数を調整できます。

助けてくれてありがとう!これが機能するかどうか確認してみますが、この方法は最終的には機能しないと思います -- グラフを生成するためにさまざまなレポートによって呼び出される関数を変更しています -- スクロール ボックスを追加できません報告書。私が思いつく唯一の解決策は、新しいコンテンツがスクロール メカニズムをトリガーしないようにすることです。
JMP のどのバージョンを使用していますか?
2 つのスクリプトが添付されています。スクロールラー_ob.jslそしてスクロールラー.jsl
スクロール アクションを除いて、どちらも基本的に同じスクリプトです。
スクロールラー_ob.jsl
- ユーザーが押したボタンを含むアウトライン ボックスに対して、VListBox()、vlb、および Scroll Window() のみを使用します。 ただし、ユーザーが 6 番目のディスプレイまでスクロールすると、ディスプレイ 5 の一部が表示され、ディスプレイ 6 が一番上に飛び出すことになります。 ユーザーは関心のあるグラフを引き続き参照でき、スクロール操作はスムーズです。
スクロールズ0.jsl
- vlb には ScrollBox() ラッパー sb を使用します。ScrollBox には、スクロール位置を取得する優れた関数があります。 この機能を使用してスクロール位置を設定すると、ユーザーはまったく同じ位置を見ることになりますが、表示は飛び飛びで滑らかではありません。
どちらのスクリプトも式を使用して、読みにくく保守しにくい「クッキー カッター」コードを排除しています。 各ボタン ボックス、各二変量、および各「表示」アウトライン ボックスへのハンドル/参照が作成されることに注意してください。任意のボタンを右クリック > [編集] を選択 > [スクリプトの設定] を選択すると、二変量への参照などが表示されます。
JSL マスターへの参考として、ButtonBox() に Set Function() を使用し、その親と兄弟を使用してみました。 しかし、驚いたことに、vlb << Scroll Window(this) は私にとっては機能しませんでした。コーディングエラーだった可能性があります。 コードがわかりにくくて役に立たないと思ったので、あまり時間をかけませんでした。
ご協力いただきありがとうございます!ただし、私の問題は、概要の一部を表示したくない、単にスプラインを描画したいということです。この目的のために、Visibility( "Collapse" ) および (Curve[x] << Report(0)) コマンドを使用して、レポートが表示されないようにすることに成功しました。しかし、それでも画面は見せられたかのように動きます。
より完全な例をここに示しました。ボタンをクリックしてスプラインを追加すると、(最終的には) 新しいコンテンツが表示されなくても、グラフが表示されなくなる位置まですぐにスクロールします。
私の会社で使用しているレポートには、この例のようなページ内に多数のグラフが含まれており、スプラインを対話的に追加できる機能は非常に便利ですが、その結果、対象のグラフが画面外に移動すると、それもまた問題になります。対処するのは非常に面倒です。
助けていただければ幸いです。
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
Outline Box( "a display",
a1 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a1++;
obj1 << Fit Spline( n, Standardized ) << (Curve[a1] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj1 = Bivariate( Y( :Weight ), X( :Height ) );
obj1 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj1 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj1 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a2 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a2++;
obj2 << Fit Spline( n, Standardized ) << (Curve[a2] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj2 = Bivariate( Y( :Weight ), X( :Height ) );
obj2 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj2 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj2 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a3 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a3++;
obj3 << Fit Spline( n, Standardized ) << (Curve[a3] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj3 = Bivariate( Y( :Weight ), X( :Height ) );
obj3 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj3 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj3 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a4 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a4++;
obj4 << Fit Spline( n, Standardized ) << (Curve[a4] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj4 = Bivariate( Y( :Weight ), X( :Height ) );
obj4 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj4 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj4 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a5 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a5++;
obj5 << Fit Spline( n, Standardized ) << (Curve[a5] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj5 = Bivariate( Y( :Weight ), X( :Height ) );
obj5 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj5 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj5 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a6 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a6++;
obj6 << Fit Spline( n, Standardized ) << (Curve[a6] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj6 = Bivariate( Y( :Weight ), X( :Height ) );
obj6 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj6 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj6 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a7 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a7++;
obj7 << Fit Spline( n, Standardized ) << (Curve[a7] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj7 = Bivariate( Y( :Weight ), X( :Height ) );
obj7 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj7 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj7 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a8 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a8++;
obj8 << Fit Spline( n, Standardized ) << (Curve[a8] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj8 = Bivariate( Y( :Weight ), X( :Height ) );
obj8 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj8 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj8 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a9 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a9++;
obj9 << Fit Spline( n, Standardized ) << (Curve[a9] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj9 = Bivariate( Y( :Weight ), X( :Height ) );
obj9 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj9 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj9 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
)
)
);インタラクティブ UI の観点からは、適合概要までスクロールすることは理にかなっています。このスクリプトは、Visibility() と Scroll Window() という 2 つの便利な JMP 表示ボックス関数/メソッドを使用します。 Scroll Window() は常に表示の先頭に戻るために使用され、visibility はスプラインに関連付けられたアウトライン ボックスを「折りたたむ」ために使用されます。
簡単にするために、このスクリプトではアウトライン ボックスの数を使用していることに注意してください。ただし、Bivar Spline で始まる helpKey を使用して k 番目のアウトライン ボックスを見つける Xpath は、より直接的です。
Names Default To Here( 1 );
n = 100;
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
xp = Expr(report(obj)[OutlineBox(cnt)] <<VISIBILITY></VISIBILITY>