入力文字列のウェーハがデータテーブルに含まれているかどうかを確認します下から入力文字列があります:
For( i = 1, i <= N Rows( dtWaferIDList ), i++,
tempi = Column( dtWaferIDList, 1 )[i];
InputString = If( i == 1, "'", "" ) || InputString || tempi || If( i < N Rows( dtWaferIDList ), "','", "'" );
);
そして、私がデータベースからプルしたtable1。 (表1の[ウェーハ]列で)入力文字列のすべてのウェーハがその列に含まれているかどうかを確認したいと思います。
-すべてのウェーハにデータがある場合:表示メッセージ= "利用可能なすべてのウェーハのデータ"。
-そうでない場合:メッセージを表示=「利用可能なデータがありません」。
ありがとうございました!
データ表スクリプティング再:入力文字列からのウェーハがデータテーブル内に含まれているかどうかを確認しますこの比較にはおそらく連想配列を使用できます連想配列のアプリケーション。 パーツをチェックしてください2つの異なるデータテーブルの列を比較する
再:入力文字列からのウェーハがデータテーブル内に含まれているかどうかを確認します@jthiあなたを正しい方向に向けました。提案されているアプローチは、非常に長いリテラル文字列を使用しています。連想配列またはJMPリストのいずれかを使用することをお勧めします。
以下は、ウェーハを含むデータテーブルを開く簡単なスクリプトです。次に、ランダムなウェーハのセットを持つデータテーブルを作成します。最後に、ランダムセットに最初のデータテーブルのすべてのウェーハが含まれているかどうかを確認します。
names default to here(1);
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
unique wafers = associative array(dt:Wafer);
// Create a random wafer table and see if it contains all wafers
dtRand = new table("Random",
add rows(60),
new column("Rand Wafer", set each value(random integer(1,24)));
);
random wafers = associative array(dtRand:Rand wafer);
Random wafers << Intersect( unique wafers );
if(n items(Random wafers) == n items( unique wafers),
msg = "data for all wafers available",
msg = "no data available"
);
new window("Message", <<MODAL></MODAL>再:入力文字列からのウェーハがデータテーブル内に含まれているかどうかを確認しますこんにちはネルソン、
私は助けに感謝します! 私はまだJMPに少し慣れておらず、連想配列をまだ使用していません。 スクリプトガイドと索引でそれを読みました。しかし、まだ混乱があります。 これが私のコードのどこにあるかです:(データベースからテーブルWaferRgDtを開いた直後)
unique wafers = Associative Array( WaferRgDt:Wafer );
given wafers = Associative Array( dtWaferIDList:WaferList );
intersection = unique wafers; intersection << Intersect( given wafers); //intersection between arrays
//uncommmon2 represents wafers that have no data associated with it.
uncommon2 = given wafers; uncommon2 <<REMOVE></REMOVE>
これを実行すると、ピリオド付きの空のメッセージボックスが表示されます...それでも何かがおかしいようです。 それが論理的な問題なのか構文なのか疑問に思います。 可能であれば、メッセージボックスにキーを書き込む方法を見つけるのに苦労しました。 それが十分に明確であったことを願っています。 再度、感謝します!
再:入力文字列からのウェーハがデータテーブル内に含まれているかどうかを確認します文字列のリストを文字列に変換するには、Concat Items()を使用できます。
Names Default To Here(1);
aa = Associative Array({"bun",
"shoe",
"tree",
"door"}
);
uniqKeys = aa << get keys;
Show(uniqKeys);
Show(Concat Items(uniqKeys, ", "));
再:入力文字列からのウェーハがデータテーブル内に含まれているかどうかを確認しますまた、上記のコードの記述を支援するためにこのディスカッション投稿を使用しましたRe:2つのリスト(珍しい要素)を比較する簡単な方法は?