이것은 제조 현장에 적용하기에는 너무 간단하지만 이에 접근하는 방법에 대한 몇 가지 가능한 아이디어를 제공해야 합니다.
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)
)
)
)
);
스크립팅 가이드( 스크립팅 가이드 > 디스플레이 트리 > 사용자 지정 창 구성 > 새 창을 위한 생성자 ) 및 스크립팅 인덱스에는 새 Windows를 빌드하는 방법에 대한 다양한 옵션이 있습니다.
이와 같은 것을 만들 때 고려해야 할 몇 가지 사항도 있습니다. 다음은 생각해 볼 몇 가지 질문입니다.
- 사용자가 배치 -> 로트 정보를 하나씩 채워야 합니까? 아니면 한 번에 (내 예와 같이)?
- 어떤 유형의 오류 상황이 있을 수 있습니까?
- 로깅이 필요한 경우 유형은 무엇입니까?
- 창이 모달이어야 합니까(확인/취소를 누를 때까지 JMP 사용 차단)?
- 새 열이 생성된 후에는 어떻게 됩니까?
- 이것은 어떻게 공유될까요? 추가 기능, 네트워크 드라이브의 스크립트?
- 이것은 앞으로 어떻게 수정될까요?
이것은 훌륭하게 작동합니다, 감사합니다! 그리고 고려해야 할 추가 사항에 대해서도 감사드립니다.
안녕,
사용자 입력을 기반으로 JSL을 사용하여 열을 다시 코딩(새 열 생성)하려고 합니다.배치 프로세스에서 얻은 데이터가 있고 시간을 기준으로 각 배치를 식별할 수 있으므로 데이터를 다음과 같이 정리할 수 있습니다.

제가 하고 싶은 것은 사용자에게 입력을 요청하는 것입니다. 이 경우 각 배치에 해당하는 로트 번호는 배치 번호에 해당하는 로트 번호로 새 열을 다시 코딩하는 데 사용됩니다. 최종 테이블은 다음과 같습니다.

추가 주의 사항이 있습니다. 캠페인의 배치 수는 1-16 사이에서 가변적입니다.이 스크립트의 목표는 배치 캠페인이 완료된 후 제조 현장에서 실행할 수 있도록 하여 사용자에게 친숙하고 쉽게 실행할 수 있도록 하는 것입니다.어떤 아이디어?