これは単純すぎて製造現場に置くことはできませんが、これにどのようにアプローチできるかについていくつかの考えられるアイデアを提供する必要があります。
Names Default To Here(1);
dt = New Table("example",
Add Rows(4),
New Column("Batch", Numeric, Ordinal, Values([1,2,3,4]));
);
recode_batches = Expr(
aa_recode = Associative Array(ncb_batch << get, sceb_lot << get);
dt << New Column("Lot Number", Character, Nominal, << Set Each Value(
aa_recode[:Batch];
));
);
init_batches = Associative Array(:Batch) << get keys;
nw = New Window("Input",
H List Box(
Table Box(
ncb_batch = Number Col Box("Batch", init_batches),
sceb_lot = String Col Edit Box("Lot Number", Repeat({""}, N Items(init_batches))),
),
Panel Box("Actions",
Lineup Box(N Col(2),
Button Box("OK",
recode_batches;
nw << close window;
),
Button Box("Cancel", nw << close window)
)
)
)
);
スクリプト ガイド (スクリプト ガイド > ツリーの表示 > カスタム ウィンドウの構築 > 新しいウィンドウのコンストラクタ) と Scripting Index には、新しい Windows を構築する方法に関するさまざまなオプションがあります。
このようなものを構築する際には、考慮すべき点もかなりあります。 以下に、考慮すべきいくつかの質問を示します。
- バッチ -> ロット情報を 1 つずつ入力するようにユーザーに要求する必要がありますか? それとも(私の例のように)一度に?
- どのような種類のエラー状況が考えられますか?
- ロギングが必要な場合、どのタイプですか?
- ウィンドウをモーダルにする必要がありますか ([OK] または [キャンセル] が押されるまで JMP の使用をブロックします)。
- 新しい列が作成された後、何が行われますか?
- これはどのように共有されますか? ネットワークドライブのアドイン、スクリプト?
- これは将来どのように変更されますか?
これは素晴らしく機能します、ありがとう! また、その他の注意点も教えていただきありがとうございます。
やあ、
JSL を使用して、ユーザー入力に基づいて列を再コード化する (新しい列を作成する) ことを考えています。バッチ プロセスから取得したデータがあり、時間に基づいて各バッチを識別できるため、データを次のようにクリーンアップできます。

次に、ユーザーに入力を求めるプロンプトを表示します。この場合は各バッチに対応するロット番号です。この入力は、バッチ番号に対応するロット番号で新しい列を再コード化するために使用されます。 最終的なテーブルは次のようになります。

追加の注意事項があります。キャンペーン内のバッチ数は 1 ~ 16 の範囲で可変です。このスクリプトの目標は、バッチのキャンペーンが完了した後に製造現場で実行できるようにすることであり、ユーザーフレンドリーで実行しやすいものにすることを目指しています。何か案は?