안녕,
첫 번째 파라미터/차트에는 위상 관리 한계를 적용하지 않고 , 나머지 파라미터/차트에는 동일한 스크립트 내에서 고정된 관리 한계를 적용하는 경우를 스크립트로 작성하는 데 도움이 필요합니다.
저는 현재 다음과 같은 구조를 사용하고 있습니다.
<SPAN>관리 한계 설정( { {LCL(.), Avg(.), UCL(.)}, {LCL(1060.2), Avg(1405.3), UCL(1745.1)}, {LCL(12.3), Avg(14.1), UCL(15.8)}, {LCL(16), Avg(22), UCL(28)} } ),</SPAN>
문제는 JMP에서 항상 첫 번째 차트의 관리 한계를 묻는 대화 상자가 나타난다는 것입니다. 스크립트를 계속 실행하려면 확인 또는 취소를 클릭해야 합니다. 대화 상자를 닫으면 첫 번째 차트에는 고정 관리 한계가 표시되지 않고 나머지 세 차트에는 입력된 한계가 제대로 적용됩니다. 하지만 저는 이 대화 상자가 아예 나타나지 않도록 하고 싶습니다.
첫 번째 차트(또는 열)에도 열 속성에 고정된 제한이 있는데, 이를 제거하고 싶으신가요? 아니면 스크립트에 고정된 제한이 있는데, 특정 차트 하나만 해당 제한 없이 유지하고 싶으신가요?
스크립트에서 고정된 제한값이 설정되어 있다는 가정 하에 몇 가지 스크립팅 옵션을 사용할 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Quality Control/Coating.jmp");
// let JMP set them initially, using hidden not avoid display limit changes
ccb = dt << Control Chart Builder(
Variables(Subgroup(:Sample), Y(:Weight)),
Chart(Position(1), Points(Statistic("Average")), Limits(Sigma("Moving Range"))),
Chart(Position(2), Points(Statistic("Moving Range on Means")), Limits(Sigma("Moving Range"))),
Chart(Position(3), Points(Statistic("Range")), Limits(Sigma("Range"))),
Chart(Position(4), Points(Statistic("Range")), Limits(Sigma("Range"))),
Show Control Panel(0),
Invisible
);
// don't set them to first chart at all and let JMP do it
// I would use a list of limits and for-loop to set rest of the limits, but you could just copy paste this multiple times
ccb << Chart(Position(2), Set Control Limits({LCL(1), Avg(3), UCL(6)}));
ccb << Chart(Position(3), Set Control Limits({LCL(2), Avg(4), UCL(7)}));
ccb << Chart(Position(4), Set Control Limits({LCL(3), Avg(5), UCL(8)}));
// Show the report again
wait(0);
ccb << show window(1);
제한 관리를 더 쉽게 할 수 있는 방법은 많지만, 여기서는 리스트의 리스트를 사용하는 방법을 소개합니다(데이터 테이블, 연관 배열 등을 사용할 수도 있습니다).
Names Default To Here(1);
CC_LIMITS = {
{LCL(1), Avg(3), UCL(6)},
{LCL(2), Avg(4), UCL(7)},
{LCL(3), Avg(5), UCL(8)}
};
dt = Open("$SAMPLE_DATA/Quality Control/Coating.jmp");
ccb = dt << Control Chart Builder(
Variables(Subgroup(:Sample), Y(:Weight)),
Chart(Position(1), Points(Statistic("Average")), Limits(Sigma("Moving Range"))),
Chart(Position(2), Points(Statistic("Moving Range on Means")), Limits(Sigma("Moving Range"))),
Chart(Position(3), Points(Statistic("Range")), Limits(Sigma("Range"))),
Chart(Position(4), Points(Statistic("Range")), Limits(Sigma("Range"))),
Show Control Panel(0),
Invisible
);
For(i = 2, i <= N Items(CC_LIMITS) + 1, i++,
Eval(EvalExpr(
ccb << Chart(Position(i), Set Control Limits(Expr(CC_LIMITS[i-1])));
));
);
wait(0);
ccb << show window(1);