<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하십니까,
하나의 창에 세 개의 다른 차트(IR, EWMA 및 CUSUM)를 표시하고 있지만 내가 직면한 문제는 표시 창의 차트 내에서 사용된 where 조건도 표시한다는 것입니다.
디스플레이 창:

암호:
오브제 = 새창 ( "트렌드 분석 보고서" || 긴 날짜 ( 오늘 ()) ,
vlb = V 목록 상자 ()
) ;
표시하다 = 기능 ({ 프로세스 , 상표 , 에 의해 , Src_Type , lmt1 , lmt2 , lmt3 } ,
r1 = 새창 ( "" ,
plb = 패널 박스 ( "에 대한 관리도" || 프로세스 || " & " || " 소스 유형 = " || Src_Type , 현재 데이터 테이블 ( dt ) ;
H 목록 상자 (
관리도 (
샘플 라벨 ( 열 ( dt , 상표 )) ,
그룹 크기 ( 1 ) , KSigma ( 삼 ) ,
열로 ( dt , 프로세스 ) , 개별 측정 ( LCL ( lmt1 [ 6 ]) , AVG ( lmt1 [ 5 ]) , UCL ( lmt1 [ 7 ]))) ,
어디에 ( 열로 ( dt , 에 의해 ) == Src_Type ) ;
) ;
샘플 라벨 ( 열 ( dt , 상표 )) ,
표본의 크기 ( 1 ) ,
알파 ( 0.00269979606326021 ) ,
한계 범례 표시 ( 0 ) ,
열로 ( dt , 프로세스 ) , 누적 ( 양면 ( 1 ) , AVG ( lmt2 [ 5 ]))) ,
어디에 ( 열로 ( dt , 에 의해 ) == Src_Type ) ;
) ;
샘플 라벨 ( 열 ( dt , 상표 )) ,
표본의 크기 ( 1 ) ,
KSigma ( 삼 ) , 무게 ( 0.2 ) ,
열로 ( dt , 프로세스 ) , EWMA ( AVG ( lmt3 [ 5 ]))) ,
어디에 ( 열로 ( dt , 에 의해 ) == Src_Type ) ;
) ;
) ;
) ;
) ; vlb << 추가 ( r1 ) ; r1 << 창 닫기 ;
) ;
구성 = 기능 ({ lmts , pmt_path } ,
param_dt = 열려 있는 ( pmt_path , "보이지 않는" ) ;
param_summ = param_dt << 요약 ( 보이지 않는 ,
그룹 ( : 그룹화 기준 ,: 프로세스 ,: 샘플 라벨 ,: 에 의해 )) << 창 표시 ( 0 ) ;
을 위한 ( 큐 = 12 , 큐 <= NRow ( param_summ ) , 큐 ++, 현재 데이터 테이블 ( param_summ ) ;
열2 =: 프로세스 [ 큐 ] ; col3 =: 샘플 라벨 [ 큐 ] ; col4 =: 에 의해 [ 큐 ] ;
현재 데이터 테이블 ( lmts ) ;
CLMS = lmts << 열 이름 가져오기 ( 끈 ) ;
제거 위치 ( CLMS , 1 , 삼 ) ;
을 위한 ( 티 = 1 , 티 <= N 항목 ( CLMS ) , 티 ++, 현재 데이터 테이블 ( lmts ) ;
indv_lmts = 열로 ( CLMS [ 티 ])[ lmts << 행 가져오기 ( : 매개변수 == 열2 & : 차트 유형 == "개인" )] ;
cusum_lmts = 열로 ( CLMS [ 티 ])[ lmts << 행 가져오기 ( : 매개변수 == 열2 & : 차트 유형 == "쿠썸" )] ;
ewma_lmts = 열로 ( CLMS [ 티 ])[ lmts << 행 가져오기 ( : 매개변수 == 열2 & : 차트 유형 == "EWMA" )] ;
표시하다 ( 열2 , col3 , col4 , CLMS [ 티 ] , indv_lmts , cusum_lmts , ewma_lmts ) ;
) ;
) ;
) ;
나는 그것이 일어나는 이유를 알 수 없습니다. 도움을 주시면 감사하겠습니다. 감사!!
입력해 주셔서 감사합니다. David. 그것은 좋은 접근 방식인 것 같으며 확실히 시도해 볼 것입니다.
그 동안 빠른 해결책을 찾고 있었지만 MPB 의 솔루션이 잘 작동했습니다.
그러나 귀하의 접근 방식은 또한 최종 사용자가 차트를 잘 해석하기 위해 꽤 자명합니다.
이 예가 도움이 되는지 확인하십시오. 나는 Murphrey와 Lucas의 훌륭한 JSL 소개 Jump into JMP Scripting의 예제를 수정했습니다.
dt = Open( "$SAMPLE_DATA/품질 관리/직경.jmp" );
cc = 관리도(
그룹 크기( 1 ),
KSigma( 3 ),
차트 열( :DIAMETER, 개별 측정 ),
여기서( :MACHINE == "A386" )
);
대기( 2 );
(보고서( cc ) << 상위)[텍스트 상자( 1 )] << 삭제;
대기( 2 );
where 절에 대한 텍스트는 JMP의 표준 출력이며 코드에 국한되지 않습니다.예를 들어 이 스크립트의 경우:
관리도 (
그룹 크기 ( 1 ) ,
KSigma ( 삼 ) ,
차트 열 ( : 지름 , 개별 측정 ) ,
어디에 ( : 기계 == "A386" )
) ;
출력은 다음과 같습니다.

불행히도 이 텍스트는 디스플레이 트리에 나타나지 않는 것 같아서 쉽게 제거할 수 없습니다.내가 취하는 접근 방식은 where 절이 필요하지 않도록 각 차트에 대한 데이터의 하위 집합을 만드는 것입니다.여러 차트가 포함된 창을 작성하는 경우 "제어 차트"라는 제목이 유용한 정보를 추가하지 않으므로 이 텍스트를 데이터의 하위 집합에 사용되는 선택 절로 대체합니다.

전체 스크립트는 다음과 같습니다.
dt = 열려 있는 ( "$SAMPLE_DATA/품질 관리/직경.jmp" ) ;
// 'where' 절에 사용되는 열 이름
그룹 이름 = "기계" ;
// 창 닫기 이벤트 후에 하우스키핑을 수행하려면 이것이 필요합니다.
ns = 새 네임스페이스 ( "삭제할 임시 테이블" ) ;
// 머신에 대한 고유한 값을 가져옵니다.
요약하다 ( 수준 = 에 의해 ( AsColumn ( 그룹 이름 ) ) ) ;
뉴 = 새창 ( "내 차트" ,
헐 = H 목록 상자 ()
) ;
// 각 값에 대해 반복
ns : lst테이블 = {} ;
을 위한 ( 나 = 1 , 나 <= NItems ( 수준 ) , 나 ++,
// 데이터 서브셋 생성
일치하는 행 = dt << 행 가져오기 ( AsColumn ( 그룹 이름 ) == 수준 [ 나 ] ) ;
dt이름 = "에 대한 하위 집합" || 그룹 이름 || "=" || 수준 [ 나 ] ;
dt서브셋 = dt << 부분집합 ( 행 ( 일치하는 행 ) , 출력 테이블 ( dt이름 ) , 보이지 않는 ) ;
// on close 이벤트가 참조하기 위해 네임스페이스에 추가
에 집어 넣다 ( ns : lst테이블 , dt서브셋 ) ;
// 컨테이너를 사용하여 창에 추가될 때까지 차트가 렌더링되지 않도록 합니다.
컨테이너 = V 목록 상자 (
참조 = dt서브셋 << 관리도 (
그룹 크기 ( 1 ) ,
KSigma ( 삼 ) ,
차트 열 ( : 지름 , 개별 측정 ) ,
)
) ;
// 제목 수정
대표 = 참조 << 보고서 ;
산부인과 = 대표 [ 아웃라인박스 ( 1 )] ;
산부인과 << 제목 설정 ( 그룹 이름 || " = " || 수준 [ 나 ]) ;
// 보고서 창에 추가
헐 << 추가 ( 컨테이너 )
) ;
// 하우스키핑 - 서브세트 테이블 삭제
뉴 << 닫을 때 (
ns = 네임스페이스 ( "삭제할 임시 테이블" ) ;
을 위한 ( 나 = 1 , 나 <= NItems ( ns : lst테이블 ) , 나 ++,
노력하다 ( 닫다 ( ns : lst테이블 [ 나 ] , 저장 안함 ) )
)
) ;
그리고 관련 출력:

-데이브