やり直し <<レポート アクションをキャンセルしますやあ、
スクリプトでレポートの変更をいくつか実行し、Autorecalc をオンにして一部の行を除外すると、
レポートの変更はすべて消えます。
すべてのレポートの変更をディストリビューションの本体に挿入して、それらが消えないようにするにはどうすればよいですか?
ありがとう。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
分布 = 分布(
自動再計算( 1 ),
連続配信(
変位値(0),
要約統計量(1)、
列( :重み ),
水平レイアウト( 1 ),
Ppk機能ラベリング(1)、
能力分析 (LSL( 80 )、USL( 140 ) )
));
PpkValue = (dist << report)[OutlineBox("Long Term Sigma")][NumberColBox(1)][2];
PPKtb = テーブルボックス(
String Col Box( "パラメータ", {"Ppk"} ),
Number Col Box( "値", {PpkValue} )
);
(dist << report)[OutlineBox("Summary Statistics")] << Append(PPKtb);
(dist << report)[OutlineBox("Long Term Sigma")] << Delete;
Re: <<報告アクションをやり直すありがとう!
「グラフィックスクリプトを追加」は私にとってはうまくいきます!Re: <<報告アクションをやり直す私のスクリプトは、十分な洞察が得られることを期待して、使用できる可能性のある方法へのポインターを提供することを目的としていました。次のことを使用して、入力を改善できることを願っています。
以前の回答では、2 つの方法について言及していませんでした。Filter Change Handler、RowState Handler、Add Graphics Script の 3 つのメソッドについて説明しました。必要なものの詳細を考慮して、さまざまなオプションのいずれかを使用することを選択できます。以下に 2 つのスクリプトを用意しました。1 つは RowState Handler を使用し、もう 1 つは Add Graphics Script を使用します。
RowState ハンドラは、フィルタ変更ハンドラの実装に非常に似ています。これを使用すると、データ テーブルの RowState 列に変更が加えられると、変更がトリガーされます。
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function({},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;);
f = Function( {a}, addit() );
rs = dt << Make RowState Handler( f );
addit();
Add Graphics の例はより複雑です。これは主に、スクリプト作成者が比較する必要がある項目を決定し、コードの実行をトリガーする必要があるためです。以下のケースでは、平均または標準偏差が変化するかどうかを確認するためのチェックにより、コードの実行がトリガーされます。ユーザーが変更する可能性のある種類のものについては、それだけでは不十分な場合があります...そのため、作成されたものを拡張するか、完全に変更する必要があります。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function( {},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;
);
theMean = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1];
theSTD = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[2];
(dist << report)[framebox( 2 )] << add graphics script(
If(
theMean != ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1] | theSTD != ((dist
<< report)["Summary Statistics"][Number Col Box( 1 )] << get)[2],
addit()
);
theMean = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1];
theSTD = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[2];
);
addit();
時間をかけてスクリプト ガイドを読み、スクリプト インデックスに慣れることを強くお勧めします。Scripting Guide の JSL の概要は、熟練した JSL プログラマーになるために必要な基礎を提供し、Scripting Index のすべてのオブジェクトと関数の例は、コードを記述する上で非常に貴重です。
Re: <<報告アクションをやり直すありがとうジム。
残念ながら、この解決策は私には適していません。
1. ローカル データ フィルターを追加したくない
2. スクリプトを実行してローカル データ フィルタの選択を変更すると、カスタム レポートが変更されずに配布が再実行されます。
2 番目のソリューションの構文は何ですか (フレーム ボックスへのグラフィックス スクリプト() )?
再度、感謝します。
Re: <<報告アクションをやり直すRecalc を実行すると、プラットフォームが事実上再実行されるため、投稿の変更もすべて再実行する必要があります。これを行う 1 つの方法は、フィルター変更ハンドラーまたは行状態ハンドラーを使用することです。これは、フィルターまたは行状態の変更が検出されたときにコードを実行します。配布グラフィックの Frame Box() に Graphics Script を追加して、グラフが変化したときにコードの実行をトリガーすることもできます。以下のコードは、Make Filter Change Handler() を使用してジョブを完了します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function({},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;);
filter = dist << Local Data Filter(
Add Filter( columns( :age ) )
);
f = Function( {a}, addit() );
rs = filter << Make Filter Change Handler( f );
addit();
Re: <<報告アクションをやり直すありがとう。
正常に動作しますが、1 行を除外すると、レポートの変更がすべて消えてしまいます。
「次への参照を変更する」とはどういう意味ですか?
添付画像をご覧ください。
Re: <<報告アクションをやり直すあなたの構文は少しずれていると思います。への参照を次のように変更すると、正常に動作します
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
PpkValue = (dist << report)[Outline Box( "Long Term Sigma" )][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;