ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < 制限の場合は合格制限のあるテーブル (制限) があります。表の列は、製品、コンポーネント A、コンポーネント B です。各コンポーネントの下に制限があります。製品例、アルミニウム、亜鉛
ファッド .24 .50
合格/不合格の列、アルミニウムの列、および各行に結果が含まれる亜鉛の列を持つ別のテーブル FG Metals があります。例 合格/不合格、アルミニウム、亜鉛
.09 .1
dt(FG メタル) アルミニウム .09 の結果と dt(Limits) アルミニウム .24 を比較する必要があります。結果が制限未満の場合は、PASS/FAIL 列に Pass を入力します。それ以外の場合は、FAIL を入力します。
うまくいけば、私はこれを十分に説明しました。ご不明な点がございましたら、お知らせください。
ウェイン
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合出来た。
どうもありがとう。
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合コード行を次のように変更してみてください
<FONT style="background-color: #ffffff;">Column( colNamesList[theColumn] || " PASS/Fail" ) << delete</FONT> property("formula");
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合TxNelson さん、こんにちは。
スクリプトで、コメントアウトすると- Column( colNamesList[theColumn] || "合格/不合格" ) << 数式を削除;それはうまくいっています。
</CODE></P><P><CODE class=" language-jsl">単なるクエリです。列を取得する前であっても、列の数式を削除していませんか? コラムが完成するので
LSL と USL の値を置き換えたら、For ループの次の行で実行しますか?
</CODE></P><PRE><CODE class=" language-jsl">colNamesList = dt << get column names(string,continuous);
For( theColumn = 1, theColumn <= N Items( colNamesList ), theColumn++,
Clear Symbols( specs );
specs = Column( dt, colNamesList[theColumn] ) << get property( "Spec Limits" );
If( Is Empty( specs ) == 0, /*show(colNamesList[theColumn] || " PASS/Fail"), Wait (1); */
Eval(
Substitute(
Expr(
dt << New Column( colNamesList[theColumn] || " PASS/Fail",
numeric,
CONTINUOUS,
FORMULA( If( __LSL__ <= __col__ <= __USL__, 1, 0 ) )
);
/* Column( colNamesList[theColumn] || " PASS/Fail" ) << delete formula;*/
),
Expr( __LSL__ ), specs["LSL"],
Expr( __col__ ), Parse(":" || colNamesLIst[theColumn] ),
Expr( __USL__ ), specs["USL"]
)
)
);
);
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合私が入れている待ち時間が何であれ、最初の列のみを評価し、同じエラーを通過します。 しかし、分割して 2 つの部分に分けて実行すると、問題ありません。 理由がわからない?
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合dt << 数式を再実行します。そして待ってください(0) - それらのどれも私のために働いていません。 しかし、はい、コードを 2 回に分けて実行すると、問題なく動作します。
他の提案はありますか?
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合を追加できます
wait(0);
また
dt << rerun formulas;
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合こんにちは, はい, 最初に仕様制限を管理してから残りのコードを実行している場合は機能しています.
show(colNamesList[theColumn] || "合格/不合格");違いはありません。 この行を追加した後でも、コードは一度に実行されません。
最初に仕様制限の管理部分を強制的に評価してからさらに移動する方法はありますか、それとも for ループに入る前に待機 (たとえば - 2 秒) することはできますか?
ありがとう。
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合以下のコードが処理される前に、仕様制限の管理が完了していない可能性があります。Manage Spec Limits だけを実行してみてください。それが完了したら、残りのコードを実行します。
また、追加
show(colNamesList[theColumn] || " PASS/Fail");
19号線の直前
Eval(
次に、コードが不平を言っている名前を見てください
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合やあ、
そのチェックを行い、LSL と USL の両方が仕様表にあることを確認しました。 実際には、For ループも開始します。列 10 から列 = 10 で、テーブルに仕様制限があることを知っていましたが、Is Empty ステートメントで処理する必要があります。
何も機能しませんでした。
ありがとう。
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合問題が発生しているコード行は、
Column( colNamesList[theColumn] || " PASS/Fail" ) << delete formula;
エラー ステートメントは、参照されている列が見つからないことを示しています。参照されている列は、直前のステートメントで作成されている必要があります。
dt << New Column( colNamesList[theColumn] || " PASS/Fail",
numeric,
CONTINUOUS,
FORMULA( If( __LSL__ <= __col__ <= __USL__, 1, 0 ) )
);
このステートメントが機能するために必要なのは、式で参照されている列に LSL と USL の両方が存在することです。これが問題だと思います。LSL と USL の両方が存在することを確認します。
ご質問について
"また、LSL のような仕様制限で「__」を使用するのはなぜですか"
これは JMP の要件ではありません。Substitute() 関数では、JMP が置換に使用する一致する値のペアが必要です。コードを明確にするために、一致する値の前後に「__」を使用しています。また、一致するペアの名前に意味のある名前を付けます。この場合、Substitution() 関数は LSL、参照 Col、および USL を置換しているため、私の慣習により、__LSL__、__col__、および __USL__ を使用します。
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合こんにちはネルソン、
金曜日にお送りいただいたスクリプトで次のエラーが発生しました。 どんな助けでも
また、LSL のような仕様制限で「__」を使用するのはなぜですか。 jmpスクリプトガイドラインで答えを見つけようとしていましたが、あまり理解できませんでした。
ありがとう。

Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合こんにちは、どうもありがとう、
はい、それは(読書スクリプトガイド) 私は今、一日中やっています。 
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合私はあなたの要求に対する解決策を以下に置きました.ただし、時間をかけてスクリプト ガイドを読んで、私が提供した内容を理解していることを確認し、他のディスカッションで提供されている JSL を理解するのに役立てる必要があります。
names default to here(1);
dtspecs = Data Table ("Specs_Limits");
dt = Data Table ("Table_A");
Loadlimit = dt << Manage Spec Limits( Y( :BVIA_RES, :COILVIA_RES, :RDR_RES, :TAD_RES,
:WELGL_RES), Load from Limits Table("Specs_Limits.jmp"), Save to Column Properties (1) );
Loadlimit << close window;
colNamesList = dt << get column names(string,continuous);
For( theColumn = 1, theColumn <= N Items( colNamesList ), theColumn++,
Clear Symbols( specs );
specs = Column( dt, colNamesList[theColumn] ) << get property( "Spec Limits" );
If( Is Empty( specs ) == 0,
Eval(
Substitute(
Expr(
dt << New Column( colNamesList[theColumn] || " PASS/Fail",
numeric,
CONTINUOUS,
FORMULA( If( __LSL__ <= __col__ <= __USL__, 1, 0 ) )
);
Column( colNamesList[theColumn] || " PASS/Fail" ) << delete formula;
),
Expr( __LSL__ ), specs["LSL"],
Expr( __col__ ), Parse(":" || colNamesLIst[theColumn] ),
Expr( __USL__ ), specs["USL"]
)
)
);
);Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合TxNelson さん、こんにちは。
同様の解決策が必要で、あなたが提供したものに従おうとしましたが、結果を得ることができませんでした。 手伝っていただけませんか -
2 つのテーブルがあります。1 つはデータ テーブルで、もう 1 つはスペック テーブルです。 メイン テーブルのデータをスペック テーブルのスペックと比較し、それを 1 (合格) および 0 (不合格) として新しい列に入れる必要があります。
助けはありますか?
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合ジム、
よく働く。ご協力いただきありがとうございます。
ウェイン
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合
- 制限ファイル内のさまざまな金属列は、数値列である必要があります。
- 金属データ テーブルの合否列は、文字として定義する必要があります。
これは、あなたが提供したサンプルデータに基づいて機能するスクリプトです...そして上記の変更を加えたものです。このコードは、限界データ テーブルを使用して、テストする金属を決定します。
Names Default To Here( 1 );
dtLimits = Data Table( "Limits sample (1)" );
dtMetals = Data Table( "FG Sample (1)" );
// Get the names of the columns with the metals data in them
metalsColNames = dtLimits << get column names( string, numeric );
For( theRow = 1, theRow <= N Rows( dtMetals ), theRow++,
If( N Rows( dtLimits << get rows where( dtLimits:product == dtMetals:Product[theRow] ) ) > 0,
theProductRow = (dtLimits << get rows where( dtLimits:product == dtMetals:Product[theRow] ))[1];
result = "Pass";
For( theColumn = 1, theColumn <= N Items( metalsColNames ), theColumn++,
target = Column( dtLimits, metalsColNames[theColumn] )[theProductRow];
col = Column( dtMetals, metalsColNames[theColumn] );
If( col[theRow] < target,
result = "Fail"
);
);
dtMetals:Name( "Pass/Fail" )[theRow] = result;
)
);Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合いずれかの金属が失敗すると、サンプルは失敗します。 すべての金属が合格した場合、サンプルは合格です。Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合必要なことは、金属データ テーブルの行にある製品について、リミット テーブルで正しい行を見つけることだけです。 それを行うためのスクリプトの修正版を入手します...しかし、各金属は合格または不合格になる可能性があるため、金属データテーブルに複数の合格/不合格列を含める必要はありません.. ...または、いずれかの金属が失敗した場合、それは失敗であると言っていますが、それらがすべて合格した場合、行は合格ですか????Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合ジム、
制限ファイルには複数の製品があります。 アルミニウムと限界.05のファッド、そしてアルミニウムと限界.02のミラクル。 制限ファイル内の各製品は、製品列の下にあります。 製品例、アルミニウム、亜鉛
フッド .5 .1
ミラクル.2.5
商品の取り扱いについて教えてください。
よろしく、
ウェイン
Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合ここにあなたが望むことをすると思うスクリプトがあります

Names Default To Here( 1 );
// Create example data tables
dtLimits = New Table( "Limits",
New Column( "Product", character, values( {"Fudd"} ) ),
New Column( "Aluminum", values( {.24} ) ),
New Column( "Zinc", values( {.50} ) )
);
dtMetals = New Table( "FG Metals",
add rows( 10 ),
New Column( "Pass/Fail Aluminum", character ),
New Column( "Pass/Fail Zinc", character ),
New Column( "Aluminum", formula( Random Uniform( 0, 1 ) ) ),
New Column( "Zinc", formula( Random Uniform( 0, 1 ) ) )
);
// Get the names of the columns with the metals data in them
metalsColNames = dtMetals << get column names( striing, numeric );
// Loop across the columns and down the rows and calculate the pass/fail
For( theColumn = 1, theColumn <= N Items( metalsColNames ), theColumn++,
target = Column( dtLimits, metalsColNames[theColumn] )[1];
col = Column( dtMetals, metalsColNames[theColumn] );
passFail = Column( dtMetals, " Pass/Fail " || metalsColNames[theColumn] );
For( theRow = 1, theRow <= N Rows( dtMetals ), theRow++,
If( col[theRow] < target,
passFail[theRow] = "Fail",
passFail[theRow] = "Pass"
)
);
);Re: ある表の結果を別の表の仕様制限と比較する必要があります。 結果 < limit th の場合サンプルファイルを添付しました。