JSL スクリプト表示ウィンドウ内の HTML に似た参照<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは。指定されたデータ セットに対して分析を実行し、レポートの最初の数ページに概要を出力し (さまざまな表示オブジェクトで new window() コマンドを使用します)、その後に選択した N 個に対する N ページのスクリプト分析が続くスクリプトがあります。パラメーター。 これらはすべて同じレポート内にあり、改ページ機能を使用して各パラメータを区切ります。 N には任意の数を指定できます...ほんの数個、または 1,000 個程度のパラメータ/ページです。最初のページあたりの概要からリンクし、このレポート内のターゲットを指すハイパーリンクを設定することは可能ですか? それは、コード化されたターゲットまたはページ番号を指す可能性があり、追跡を試みることができます。コード化された参照が推奨されます...パラメータが 1000 個あると、概要が複数のページにまたがってしまうため、ページ番号を追跡できるかどうかは実際にはわかりません。
リンク (例: ヘルプ メニュー -> サンプル データ -> すべてのカテゴリにリンクがある) を見たことがありますが、それらはファイルを指すか、他のプロトコル アドレスも機能すると思います -- open() コマンドと web() コマンド。しかし、同じレポート ウィンドウ内の場所にリンクしてポイントできるようにコーディングすることは可能でしょうか?
動的に制御/スケーリングされる軸ボックスとオンザフライ計算を多用しているため、HTML5 エクスポートではなく、ネイティブの 'new window()' 出力で実行する必要があることに注意してください。
ありがとう、
マイク
Re: JSL スクリプト表示ウィンドウ内の HTML のような参照今日、jmp スクリプト インデックスを閲覧していて、「scroll box()」表示ボックス機能を見つけて、それを疑似ハイパーリンクとして使用できるのではないかと思いつきました。 クリックするとアクションを実行する「クリック可能な」ものが必要だっただけです。レポートの先頭にはすでに集計テーブル box() があったので、テーブル ボックスの行を選択可能にし、<< set selectable rows() と << set row change 関数を組み合わせるだけで済みました。 () はまさにそれを行います。 選択が変更されると、関数が実行され、どの行が選択されているかがコードによって決定され、プロットの順序がテーブルの順序に対応している限り、i 番目のコンテキスト ボックス (または任意の表示ボックス) の参照までスクロールするだけです。 db[i] = distribution(param[i],....) である 'db[i]' までスクロールしようとしましたが、うまくいきませんでしたが、適切な表示ボックスではうまくいきました。
このコードの一部、特に << set row change function() はスクリプト インデックスのそのままです。 「this」変数を見て私は混乱しましたが、実際にあるのはテーブル ボックス自体であり、行の選択が変更されたときに関数に渡されるようです。 たとえば、「this」を vlb に追加しようとすると、vlb の最後に別のテーブル box() が追加されるだけです。
うまく処理されていないことの 1 つは、ctrl キーを押しながらクリック (Mac では cmd クリック) で複数の行が選択されている場合ですが、これは大した問題ではないと思います。 他のメソッドも使用できます...ボタン ボックスや、change() の << などをターゲットまでスクロールするために使用できます。 たとえばリストボックス。
これはすでに投稿されているかもしれませんが、共有する価値があると思いました。それを理解するのに7年しかかかりませんでした。 ぜひお役立てください。
Names Default To Here( 1 );
//dummy data table
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
// get col list
colList = {};
for( i = 1, i<=20, i++,
colList[i] = as column(dt, 4 + i) << get name();
);
// new window, table box with selectable rows
nw = New Window( "Example",
vlb = vlistbox(
Outline Box( "Table",
tb = Table Box(
String Col Box( "names", colList ),
<<SET selectable="" rows=""> 0,
nw << scroll window(cb[itemNum[1]]);
);
)
);
</SET>
Re: JSL スクリプト表示ウィンドウ内の HTML のような参照ありがとうウェンディ。 他のユーザーと一緒にレビューして、これで問題ないかどうかを確認します。 パラメータが数百ある場合は、多少のスクロールは必要になりますが、それほど悪くはありません。
-マイク
Re: JSL スクリプト表示ウィンドウ内の HTML のような参照こんにちは、ジェフ
カラムスイッチャーをチェックするのに少し時間を費やしました。 Discovery Summit の誰かがそのことについて言及していました (ゲーム番組の司会を務めた直後) ) ですが、どのプラットフォームにも追加できるとは知りませんでした。再生/速度変更機能がとても気に入っています。 ただし、私のスクリプトには他にもいくつかの機能が組み込まれており、その 1 つは、ユーザーがラジオ ボタンを使用してディストリビューションのウィンドウ サイズを拡大縮小できるようにする機能です (アプリケーションは実稼働環境での半導体電気テストです)。 すべてのパラメータの軸を既存の制限(およびすべてのデータ、ローサイド フォールアウト、ハイサイド フォールアウト、中央値 +/- N * IQR などの他のウィンドウ サイズ)に合わせてスケールするボタンがあります。 ユーザーが設定したこれらの最小/最大値を維持することが重要です。カラムスイッチャーがこれをリセットしているようです。その他の機能には、Anova と GR&R を同時に使用してグループ化する機能が含まれます。
ただし、私が使用するこの特定の機能では、すべての最小/最大軸を対応する仕様制限に設定します。 これは、表示されている分布の一部のみが最小制限から最大制限までであることを意味します (テストにおける最小/最大仕様)。これは、すべてのパラメータがウィンドウの最小値 / 最大値 = 最小値 / 最大仕様制限で始まるように開始点として使用されます。個々のパラメータにはこれらの軸スケーリング コントロールもあり、ユーザーはマウスを使用して軸をスケーリングすることもできます。ユーザーが対象のパラメータをスケールした後、下部に制限テーブルを生成するボタンがあります。 これにより、すべての最小/最大軸値が取得され、テスト プログラムにインポートできるテーブルに出力されます。 これは、多くの制限を調整する効率的な方法であることがわかりました (特に、上位 N 位の違反者のみをプロットする GUI オプションを使用した場合)。必要な cpk やその他の数学を介して制限を設定するための他のスクリプトもありますが、場合によっては理想的ではない分布が多すぎる場合があり、これは非常にうまく機能します。
以下は出力の例です。この場合、パラメータは 1 つだけプロットされており、グループ化されていません。ラジオ ボタンは軸をスケールし、下部のボタン ボックスはすべての最小/最大値を取得してテーブルを生成します。
このスクリプトはいくつかの異なる目的で使用されるため、完全に書き直すのにはちょっと抵抗があります。しかし、近い将来、そのカラムスイッチャーを何らかの方法で利用できるかどうか見てみたいと思います。

ありがとう、
マイク
Re: JSL スクリプト表示ウィンドウ内の HTML のような参照マイク、
前述の TabBox() の例では、必要に応じて PDF に保存できますが、これでは探している長いレポートは提供されません。そこで、別のオプションをご紹介します。詳細については、埋め込まれたコメントを参照してください。
ウェンディ
dt = Open( "$SAMPLE_DATA\Fitness.jmp" );
colList = dt << Get Column Names( Continuous, String );
/* New Window with a Summary OutlineBox and a separate Analyses OutlineBox */
nw = New Window( "Example 2", ob = Outline Box( "Summary" ), Outline Box( "Analyses", vl = V List Box() ) );
/* Initialize a list for storing references to the Distributions */
dist = {};
/* Loop through each column
- append each Distribution to the Analyses Outline Box
- append a button link to expand the specified Distribution OutlineBox */
For( i = 1, i <= N Items( colList ), i++,
vl << Append( dist = Distribution( Continuous Distribution( Column( Column( colList ) ), Horizontal Layout( 1 ), Vertical( 0 ) ) ) );
var = colList || " Distribution";
Report( dist )[Outline Box( 1 )] << Set Title( var );
Eval(
Eval Expr(
ob << Append(
bb = Button Box( var,
Current Window()[Expr( var )] << Close All Like This;
Current Window()[Expr( var )] << Set Open( 1 );
)
)
)
);
bb << UnderlineStyle( 1 );
);
/* Add a button to open all the OutlineBoxes and save the output as PDF */
ob << Append(
Button Box( "Save All to PDF",
Current Window()["Analyses"] << Open All Below;
Current Window() << Set Page Setup( Scale(.75));
path = Pick File( "Select PDF File", "E:\Trash", {"PDF|pdf"}, 1, 1, "Example 2.pdf" );
Current Window() << SavePDF( path );
Open( path );
)
);
Re: JSL スクリプト表示ウィンドウ内の HTML のような参照使うと思いますカラムスイッチャーこのような場合には。
これにより、ユーザーは必要な分析を選択できるようになり、別のウィンドウを更新するための追加のスクリプトを作成する必要がなくなります。
PDF オプションが必要な場合は、新しい非表示ウィンドウですべてのパラメータを実行し、PDF として保存するボタンをウィンドウに配置できます。
-ジェフ
Re: JSL スクリプト表示ウィンドウ内の HTML のような参照こんにちは、ウェンディさん
私は回避策としてこれらの方向に沿って考えてきましたが、レポートのアーカイブのためにパラメーターの完全なセットを 1 つの非常に長いレポートに保持するというアイデアが気に入っています。 PDF に印刷して、後で誰かが閲覧できるようにすることもできます (または、おそらく誰も閲覧できません)。 また、パラメータが 1000 以上ある場合、ページをすばやく移動して、外れている分布 (偏り、双峰性、外れ値) を視覚的に確認できると便利な場合があります。
私のアイデアは、現在と同じウィンドウを作成し、概要内のリンク (パラメーター名) が最初にクリックされたときに別のウィンドウを開くことでした。 このウィンドウには、メイン ウィンドウと本質的に同じ分析と出力のセットが表示されます。ただし、セカンダリ ウィンドウではパラメータが 1 つだけであるのに対し、メイン ウィンドウではパラメータの完全なセットである点が異なります。多くのパラメータ。 メイン ウィンドウから後続のリンクをクリックすると、前のパラメータが 2 番目のウィンドウから削除され、新しいパラメータが作成されます。いくつかのラジオ ボタンやその他のコントロール、軸のスケーリングが行われるため、この情報を取得してメイン ウィンドウの対応するパラメータに中継する必要がありますが、おそらく機能するでしょう。唯一の例外は、マウスを使用して手動で軸をスケーリングすることだと思います。これに関連付けられたイベント関数 (OnAxisChange() など) はないと思いますが、「完了」ボタンを実装して、新しい最小値/最大値を取得し、それをメイン ウィンドウのパラメータに戻すことができると思います。軸。
ありがとう、
マイク
Re: JSL スクリプト表示ウィンドウ内の HTML のような参照こんにちは、マイク。
TabBox() の使用を検討したことがありますか?「コンボ」と呼ばれるタブ スタイルがあり、各タブ名のドロップダウン メニューが生成され、ユーザーがそのタブを選択して直接そのタブに移動できるようになります。簡単な例を次に示します。
/* Open sample data and obtain a list of column names */
dt = Open( "$SAMPLE_DATA\Fitness.jmp" );
colList = dt << Get Column Names( Continuous, String );
/* Store the number of desired tabs in a variable */
nTabs = N Items( colList );
/* Create a New Window containing an empty TabBox */
New Window( "Example", tb = Tab Box() );
/* Use a For loop to add the desired number of tabs to the TabBox */
For( i = 1, i <= nTabs, i++,
tb << Add( colList || " Distribution",
V List Box(
Distribution( Continuous Distribution( Column( Column( colList ) ), Horizontal Layout( 1 ), Vertical( 0 ) ) )
)
)
);
tb << Set Selected( 1 );
tb << Set Style( "combo" );