<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
현재 제가 일하는 곳에는 QC 패키지가 포함된 SAS 9.2 Foundation이 있으며 각 제품과 함께 실행할 4개의 템플릿 또는 매크로 프로그램이 있습니다.40개 이상의 제품이 있습니다.문제는 우리가 보고서에 SAS를 사용하는 회사의 유일한 지사이며 JMP에서 보고서를 수행하는 데 사용하기를 원했다는 것입니다.현재 가지고 있는 일반적인 SAS 마르코는 다음과 같습니다.
%macro Import(Filepath=) Excel 파일, 일반적으로 하나의 통합 문서에서 두 개의 워크시트.하나는 데이터용이고 하나는 사양 한계용
%매크로 USLtest(테스트=)
%매크로 LSL테스트(테스트=)
%매크로 양쪽SLtest(테스트=)
ods rtf 시작 페이지=지금 열= 1 ;
데이터 결과데이터;
결과 데이터 설정;
테이블 값= 1 ;
형식 테이블 값 8. ;
운영;
/* 타임라인 */
데이터 단계(유지=lot_count _Lot_ _PHASE_);
길이 _PHASE_ $ 7 ;
결과 데이터 설정;
mfg_date <= &startdate이면 _PHASE_= '이전의' ;
else if mfg_date >= &startdate then _PHASE_= '현재의' ;
운영;
데이터 제한(이름 변경=(밑줄=_VAR_));
한계 설정 데이터;
여기서 번역(스트립(_VAR_), '____' , '()/' )= "&테스트" ;
밑줄=번역(스트립(_VAR_), '____' , '()/' );
드롭 _VAR_;
운영;
데이터 vref(유지=newvar _REF_ _REFLAB_ _CVREF_ 이름 바꾸기=(newvar=_VAR_));
한계 설정;
여기서 _VAR_= "&테스트" ;
newvar=스트립(_VAR_);
나는 = 1 에게 2 ;
만약 내가 = 1 그럼 해;
_REF_=_LSL_;
_REFLAB_= '엘에스엘' ;
_CVREF_= '빨간색' ;
산출;
끝;
만약 내가 = 2 그럼 해;
_REF_=_USL_;
_REFLAB_= 'USL' ;
_CVREF_= '빨간색' ;
산출;
끝;
끝;
드롭 _VAR_;
운영;
/* 런 차트 */
proc shewhart 데이터 = 결과 데이터;
irchart & 테스트*lot_count= '*' / 노차트 노차트2 vref=vref /*출력가능=데이터1*/ outhistory=데이터1;
운영;
데이터 데이터2;
데이터 1 단계 병합;
lot_count 기준;
_VAR_=스트립( "&테스트" );
운영;
데이터 차트;
데이터 2 제한 병합;
_VAR_에 의해;
호출 symput( '일' ,스트립(_LSL_));
호출 symput( '우슬' ,스트립(_USL_));
호출 symput( '바' ,스트립(_VAR_));
호출 symput( '단위' , 스트립(단위));
운영;
/* 개별 측정 차트 */
proc shewhart 히스토리=data2;
irchart & 테스트*lot_count= '*' / outlabel=(lot_count) /* 범위 차트 제거 */ nochart2 vref=vref /* 부분군 데이터를 기반으로 한 능력 지수 */ 신디시스 /* 사양 제한 */ lsl=&lsl usl=&usl
/* 타임라인 읽기 */ 읽기 단계=모두 /* 차트 상단의 단계 식별 */ phaselegend vreflabpos= 2 zerostd 테스트 = 1 에게 4 테스트 레이블1= ' ' 테스트 레이블2= ' ' 클립팩터= 2 상판= 1 ;
인셋 stddev cpklcl= 'Cpk 95% 낮추기' cpk= '쩝쩝' cpkucl= 'Cpk 95% 어퍼' ;
레이블 &var= "&var(&단위)" ;
운영;
/* 히스토그램 */
ods 선택 히스토그램;
proc 기능 데이터=차트 noprint;
사양 lsl=&lsl usl=&usl;
var &var;
히스토그램 &var / normal;
삽입 n= 'N'
pctlss= '% < LSL' pctgtr= '% > USL' cpklcl= 'Ppk 95% 낮음' cpk= '팍' cpkucl= 'Ppk 95% 어퍼' /
cfill = ywh
형식 = 6.2 ;
레이블 &var= "&var(&units)" ;
운영;
데이터 결과데이터;
결과 데이터 설정;
테이블 값= 삼 ;
형식 테이블 값 8. ;
운영;
ods rtf 열= 4 ;
proc 보고서 데이터 = 결과 데이터 nowindows;
열 lot_count _lot_ &test;
lot_count 정의 / '세다' 표시 스타일(열)=[셀 너비= .5 안에];
_lot_ 정의 / 표시;
mfg_date/디스플레이 정의;
정의 및 테스트/디스플레이;
운영;
%macro USLtestwithsubgroups(test=)
%macro LSLtestwithsubgroups(test=)
%macro BothSLtestwithsubgroups(test=)
요법..
이 매크로 내부의 %macro Outputfilemacro(filepath=)는 (ODS 그래픽 켜기, ods rtf 시작 페이지, %BothSLtest(test='pH')와 같은 테스트 매크로 호출, ods 그래픽 끄기, rtf 닫기)의 일반적인 순서로 요약됩니다.
나는 outputfilemacro 내부에서 8-20개의 다른 테스트 매크로를 호출하는데, 각각은 사용되는 테스트 매크로에 따라 테스트당 2-4개의 차트를 표시합니다.
프로그램이 끝나면 변경할 사항으로 가득 차 있습니다.
%가져오기(파일 경로=파일 위치)
%Outputfilemacro(filepath=파일 위치, 타이틀에 대한 제품 정보 등)
outputfilemacro에서 실행하는 매크로의 예는 다음과 같습니다.
%출력 파일 매크로 수정
outfilepath 대상이 있는 ods 그래픽 옵션
% 둘 다SLChart (시작일= 2013년 4월 1일 , 테스트 = pH)
% 둘 다SLMeansChart (시작일= 2013년 4월 1일 , 테스트=Extractable_Volume, firstvar=C1, lastvar=C5, 샘플 크기= 5 , 시작 개수= 42 )
% USL차트 (시작일= 2013년 4월 1일 , 테스트=Water_Content)
% 둘 다SLChart (시작일= 2013년 4월 1일 , 테스트=Assay__Alprostadil_)
% USL차트 (시작일= 2013년 4월 1일 , 테스트=PGA1)
% USL차트 (시작일= 2013년 4월 1일 , 테스트=PGB1)
% USL차트 (시작일= 2013년 4월 1일 , 테스트=keto_PGE1)
% USL차트 (시작일= 2013년 4월 1일 , 테스트=iso_PGE1)
% USL차트 (시작일= 2013년 4월 1일 , 테스트=Total_Impurities)
% 둘 다SLMeansChart (시작일= 2013년 4월 1일 , 테스트=Content_Uniformity, firstvar=CU1, lastvar=CU10, 샘플 크기= 10 , 시작 개수= 42 )
% USL차트 (시작일= 2013년 4월 1일 , 테스트=AV)
% 둘 다SLChart (시작일= 2013년 4월 1일 , 테스트=어세이__NaCl_)
ods 마감 문
%출력 파일 매크로 수정
%출력파일매크로( 파일 경로= 2014년 \ 2014년 _제품명\SAS\ 암호 , 제품 번호= 암호 , 제품 이름=이름 , 시작일= 2013년 6월 12일 , 종료일= 2014년 6월 11일)
해당 매크로를 강조 표시하고 제출을 클릭하면 나머지는 SAS가 처리합니다.
테스트는 사양 제한에 대해 테스트되고 차트로 표시되는 내 데이터 세트의 변수 이름입니다.사양 제한에 대해 테스트된 기능 추정치가 포함된 관리도가 있습니다.
차트는 내가 선택한 날짜에 따라 각 테스트에 특정한 사양 제한, 현재 및 이전 시간 단계, 차트의 왼쪽 상단 모서리에 있는 기능 인덱스를 표시합니다.다른 제품에 대해 이것을 실행할 때마다 파일 경로 이름을 변경하고, 실행할 테스트 매크로를 복사하여 붙여넣고, 갖고 싶은 각 SLChart 매크로에 test= 값을 설정하기만 하면 됩니다.내가 가지고 있는 각 제품과 제품 강도에 대해 약 5-10분 정도 필요한 모든 차트를 출력할 수 있습니다.제품의 강점에 대한 이 특정 프로그램은 차트 다음의 테스트에 특정한 데이터 인쇄물이 포함된 26개 정도의 차트를 생성합니다.
질문은 JMP 10에서 이와 유사한 작업을 수행할 수 있습니까?그렇다면 매크로는 JMP에서 어떻게 작동합니까?
JMP JSL에 대해 약간 이해하고 있지만 처음 사용합니다.SAS 매크로에서와 같이 JMP에서 자동화하는 방법을 알아내려고 합니다.
메시지 편집자: Jeff Ollis
즐거운,
출력이 어떻게 생겼는지 정확히 모르겠지만 파일을 열고 일부 제어 차트를 만드는 JSL은 매우 간단합니다.JMP를 사용하여 Excel 파일을 열면 JMP 테이블에는 테이블을 다시 여는 데 사용할 수 있는 "소스" 스크립트가 테이블 상자에 있습니다. 그런 다음 JMP를 사용하여 제어 차트를 만들고 기준에 맞게 형식을 지정한 다음 스크립트를 데이터 테이블에 저장합니다.
그런 다음 테이블 열기 및 제어 차트 실행을 자동화하려면 소스 스크립트의 Open 문과 새 스크립트 창에서 제어 차트 스크립트를 결합하기만 하면 됩니다(두 명령은 세미콜론으로 구분). 코딩이 거의 필요 없는 자동화된 보고서가 있습니다.
다음은 두 가지 간단한 예입니다.
//예제 1
dt = 열기( "$SAMPLE_DATA/태블릿 프로덕션.jmp" );
dt << 컨트롤 차트(
차트 열(:혼합 시간, 개별 측정),
차트 열(:혼합 속도, 개별 측정),
차트 열(:힘, 개별 측정),
Chart Col( :Mill Time, 개별 측정 ),
Chart Col( :코팅 점도, 개별 측정),
차트 열(:입구 온도, 개별 측정)
);
//예제 2, 약간 더 복잡함
그룹1 = Expr(
관리도(
샘플 라벨(:코팅 공급업체),
차트 Col( :코팅 점도, XBar, R ),
Chart Col( :Inlet Temp, XBar, R )
)
);
그룹2 = Expr(
관리도(
차트 열(:혼합 시간, 개별 측정),
차트 열(:혼합 속도, 개별 측정)
)
);
win = New Window( "컨트롤 차트 예",
H 목록 상자(
"세로 목록 상자",
패널 상자( "제어 차트의 첫 번째 그룹", group1 ),
패널 상자( "컨트롤 차트의 두 번째 그룹", group2 )
)
);