私はプロセススクリーニング分析の自動化に取り組んでいます。
テキスト ボックス ポップアップがあり、ユーザーに yyyy-mm 形式で日付を入力するよう促します。次に、日付を変数として保存するボタンがあります。次に、プロセス スクリーニング分析を実行するボタンがあります。それに加えて、ユーザー入力を使用してローカル データ フィルターを配置し、そのデータ セットのみで分析を実行します。これは正常に動作します。
ただし、プロセス スクリーニング モジュールの最後の引数として設定した [選択した項目の管理チャート] オプションも活用したいと考えています。最後から 2 番目の引数は [すべて選択] です。結果には、正しいグループ化はされているものの、正しいフィルタリングはされていない管理チャートが表示されます (データ テーブルのすべてのデータがチャートの作成に使用されます)。
質問が 2 つあります。ローカル データ フィルターによってフィルターされたデータのみがグラフの作成に使用されるようにするにはどうすればよいでしょうか。
(プロセス スクリーニング モジュールの赤い三角形を使用して必要なチャートを作成し、そのスクリプトを取得すると、多くのハードコードされた値が作成され、後の分析では機能しない可能性があります)
2 番目の質問は、管理図をさらに処理または保存するために呼び出すにはどうすればよいかということです。管理図を別の変数に保存したりエクスポートしたりする方法はまだわかりません。以前、プロセス スクリーニング分析を変数に保存し、<< report; を使用して PowerPoint として保存しましたが、管理図なしでプロセス スクリーニングだけが表示されます。
どのような助けやリソースでもいただければ幸いです。
以下は私のコードの一部です
year = Char( Year( Today() ) );
month = Char( Month( Today() ) );
date = Concat Items( {year, month}, "-" );
w = New Window( "Date Filter",
Border Box( top( 30 ), bottom( 20 ), Left( 30 ), Right( 30 ),
V List Box(
H Center Box( Text Box( "Date Filter\!n\!nPlease enter date in yyyy-mm format" ) ),
Spacer Box( size( 1, 30 ) ),
H List Box( Text Box( "Date: " ), b1 = Text Edit Box( date ) ),
Spacer Box( size( 1, 15 ) ),
Spacer Box( size( 1, 15 ) ),
H Center Box(
Button Box( "Save Filter Date",
b2 = b1 << Get Text();
)
),
H Center Box(
Button Box( "Get Process Capability",
Current Data Table( dt2 );
dt4 = Process Screening(
Process Variables(
:"Metric1", :"Metric2",:"Metric3"),
Grouping( :"MetricA" ),
Control Chart Type( "Indiv and MR" ),
Process Performance Graph( 1 ),
Show Tests( 0 ),
Target Index( 1 ),
Cp( 1 ),
Spec Limits( 1 ),
Use Limits Table(1,Data Table( dt3 ),Process Variables( :Process ),Grouping( :"MetricA" ),LSL( :LSL ),USL( :USL ),Target( :Target ),Go),
Local Data Filter(Add Filter( columns( :"ProcessDate" ), Where(:"ProcessDate" == b2 ))),
SendToReport( Dispatch( {}, "", TableBox, {Sort By Column( 2, 1 )} ) ),
Select All,
Control Charts for Selected Items,
);
)
)
)
)
);
フィルターはプロセス スクリーニングに正しく機能していますか? jmps サンプル データを使用して簡単なテストを実行しました。
lot01のみにフィルタリング

選択したコントロールチャートを作成すると、フィルタリングされていることがわかります

管理チャートは新しいウィンドウで開きます。それを取得するには、<< ウィンドウリストを取得 + << ウィンドウタイトルを取得 を使用して、どのウィンドウが自分のウィンドウであるかを確認します。複数のウィンドウが作成され、かつ「選択したチャート」がまだ存在しない場合は、「選択したチャート」という名前が付けられます。
こんにちは、jthiさん。
はい、ローカル データ フィルターは、分析のプロセス能力の部分では間違いなく正しく機能しています。データをフィルターし、必要なメトリック (すべて) を選択してから、赤い三角形に移動して、選択した項目の管理チャートを選択すると、フィルターされた管理チャートが表示されます。これが私が探しているものです。上に貼り付けたコードを引き続き使用すると、フィルターされていない (すべてのデータ) 管理チャートが出力されます。
これは少なくとも機能しているようだ
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
ps = dt << Process Screening(
Process Variables(
:NPN1, :PNP1, :PNP2, :NPN2, :PNP3, :IVP1, :PNP4, :NPN3, :IVP2, :NPN4, :SIT1,
:INM1
),
Control Chart Type("Indiv and MR"),
RowStates([0 1, 10 1, 11 1]),
Local Data Filter(
Add Filter(
columns(:lot_id),
Where(:lot_id == {"lot01", "lot02", "lot03", "lot04"}),
Display(:lot_id, N Items(13))
)
)
);
ps << Select All;
ps << Control Charts for Selected Items;はい、これはうまくいくようです。ご協力ありがとうございます