트리거된 경보와 관련된 행을 식별합니다. 알람이 트리거될 때 호출되는 핸들러는 포인트, 특히 qc_sample(및 qc_firstRow qc_lastRow)에 대한 정보를 수신합니다. 차트가 하나만 있으면 완벽합니다. 개별 측정값이 있는 경우 샘플은 표의 행을 식별합니다. 안타깝게도 여러 차트로 분할되는 BY 열이 있습니다. 이 경우 qc_sample은 각 차트의 샘플을 참조하므로 해당 행을 테이블로 검색하기가 어렵습니다. 그것을 얻을 수 있는 간단한 방법이 있나요?
예, 'qc_sample' 값이 'By' 변수의 수준과 관련될 수 있다는 명백한 방법이 없다는 점에서 알람 스크립트는 무뚝뚝한 도구인 것 같습니다. 데이터 테이블의 해당 행.
그러나 스크립트에서 진행 중인 다른 작업에 따라 '프로세스 스크리닝'을 사용하여 필요한 것을 얻을 수도 있습니다. 아래 스크립트를 시작하면 됩니다. 이를 실행하고 로그와 그것이 생성하는 두 개의 '세부' 테이블을 검사하십시오.
NamesDefaultToHere(1);
// Make some data
dt = NewTable("Alarms",
NewColumn("By", Numeric, Nominal, Formula(RandomInteger(1,2))),
NewColumn("Data", Numeric, Continuous, Formula(RandomNormal(0,1)))
);
dt << addRows(1000);
// Use process screening invisibly to get the details of all alarms (one table for each level of the 'By' variable)
ps = dt << Process Screening( Y(Column(dt, "Data")), By(Column(dt, "By")), Invisible );
dtList = ps << saveDetailsTable;
Report(ps[1]) << closeWindow;
// Control chart with alarm script
cc = dt << Control Chart(
Chart Col( :Data, Individual Measurement, Moving Range ),
By( :By ),
Alarm Script(
Write(
"Out of Control for test ",
qc_test,
" in column ",
qc_col,
" in sample ",
qc_sample,
"\!N"
)
)
);
// Turn on Test 1
cc << Test 1(1);