명세서별 WaferID를 일치시켜 배포 제목 편집안녕하세요,
분포 그래프의 제목을 좀 더 설명적이고 내가 만든 다른 그래프와 쉽게 일치하도록 편집하고 싶습니다. 각 그래프의 제목을 "Wafer = XYZ..., BatchID = ABC..."로 하고 싶습니다.

아래에 만든 코드를 사용하면 제목을 편집할 수 있지만 놀랍게도 이전에 만든 연관 배열에 나열된 모든 배치 ID가 나열됩니다. (이 배열은 내가 가지고 있는 테이블의 열에 있는 모든 배치 ID를 나열합니다.) 내가 하고 싶은 것은 웨이퍼를 BatchID와 일치시키고 이를 By 문과 함께 각 그래프의 제목에 표시하는 것입니다. 어쨌든 이렇게 할 수 있나요? 감사합니다!
//DISTRIBUTION PLOT
batchids = Associative Array( BatchIDs:BatchID );
RawData << Distribution(
Stack( 1 ),
Automatic Recalc( 1 ),
Continuous Distribution(
Column( :col1 ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
Local Data Filter(
Close Outline( 1 ),
Add Filter( columns( :FailDie ), Where( :FailDie == 0 ) ) ),
By( :Wafer ),
SendToReport(
Dispatch(
{},
"Distributions Wafer=XYZ",
OutlineBox,
{Set Title(
"Distributions Wafer=XYZ, Batch ID = " || Char( batchids << Get Keys )
)}
)
)
);대량 맞춤화Re: WaferID를 By Statement와 일치시켜 배포 제목 편집분명히 하나의 값만 반환될 때 JMP 버전이 스케일러를 반환합니다.Re: WaferID를 By Statement와 일치시켜 배포 제목 편집JMP 14를 실행하고 있습니다.
이상하게도 이 코드 줄에서 [1]을 제거하면 스크립트가 올바르게 실행됩니다. 다른 모든 것을 그대로 둡니다.
thelot = dtLookup:lot_id[(dtLookup << get rows where(:wafer == theWafer))[1]];
다음과 같이 변경됨:
thelot = dtLookup:lot_id[(dtLookup << get rows where(:wafer == theWafer))];
도움을 주셔서 다시 한 번 감사드립니다!
Re: WaferID를 By Statement와 일치시켜 배포 제목 편집내 샘플 스크립트에 내 오류가 있습니다.내가 사용하고 있던 샘플 데이터 테이블을 사용하려면 아래를 참조하십시오.
실행 중인 JMP 버전은 무엇입니까?
내가 제공한 예제 프로그램에서 다음 줄을 변경합니다.
dt = current data table();
에게
dt = open("$sample_data/semiconductor capability.jmp");
그런 다음 스크립트를 실행합니다.오류 없이 작동해야 합니다.
Re: WaferID를 By Statement와 일치시켜 배포 제목 편집요컨대 아니오. 필요한 테이블에서 작동하도록 할 수 없습니다. 그것이 의미가 있고 작동해야하지만 내가 말할 수있는 것에서. 마지막 메시지에서 보낸 오류(응답하지 못해서 죄송합니다)가 계속 표시됩니다. 내가 이해하지 못한 유일한 것은 이 줄 끝에 있는 [1]입니다.
theLot = AllTheBatchIDs:BatchID[(AllTheBatchIDs << get rows where( :Wafer == theWafer ))[1]];
무엇을합니까? 어떤 제안?
Re: WaferID를 By Statement와 일치시켜 배포 제목 편집액세스 또는 평가에서 잘못된 아래 첨자(숫자 또는 숫자 목록이어야 함){1}....
"theLot"에 대한 오류 메시지Re: WaferID를 By Statement와 일치시켜 배포 제목 편집제가 마지막 답변에서 제공한 예가 귀사에 적합합니까? 그것이 출발점이 되어야 합니다.Re: WaferID를 By Statement와 일치시켜 배포 제목 편집안녕 txnelson! 빠른 응답과 멋진 솔루션에 다시 한 번 감사드립니다.
내 룩업 테이블에 여전히 문제가 있습니다. "theWafer"가 올바르게 발견되는 것 같지만 디버거에서 실행할 때 "theLot"이 채워지지 않습니다. 이것에 문제가 있었습니까? 내 정확한 코드가 첨부되어 있습니다. 내 헤더는 "Distributions Wafer = ABC123, BatchID = ."처럼 보입니다.
BatchIDs = 참조용 조회 테이블
| 배치 ID | 웨이퍼 |
| QQQ1234 | ABC-123 |
| YYY1234 | QWE-456 |
For( i = 1, i <= N Items( VthNew ), i++,
theWafer = char(word(-1,Report( VthNew[i] )[Outline Box( 1 )] << get title,"="));
theLot = BatchIDs:BatchID[(BatchIDs << get rows where(:Wafer == theWafer))[1]];
Report( VthNew[i] )[Outline Box( 1 )] <<
Set title(
Report( VthNew[i] )[Outline Box( 1 )] << get title || " BatchID =" || Char(theLot)
)
);
도와 주셔서 감사합니다!
Re: WaferID를 By Statement와 일치시켜 배포 제목 편집분포에 대한 아웃라인 박스()에서 웨이퍼 값을 제거한 다음 조회 데이터 테이블에서 조회를 수행하고 BatchID를 얻거나 제 예의 경우 Lot_id를 얻는 것은 간단한 문제입니다. 그런 다음 개요 상자()의 제목에 추가합니다.

Names Default To Here( 1 );
dt = Current Data Table();
batchids = Associative Array( dt:lot_id );
dtlookup =New Table( "Lookup",
Add Rows( 24 ),
New Column(
["en" => "wafer", "ja" => "ウエハー", "x-id" => "S_wafer_Col", "zh-CN" => "晶片"],
Numeric( 1 ),
"Nominal",
Set Values(
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24]
),
Lock( 1 )
),
New Column( "lot_id",
Character,
"Nominal",
Set Values(
{"lot01", "lot02", "lot03", "lot04", "lot05", "lot06", "lot07", "lot08",
"lot09", "lot10", "lot11", "lot12", "lot13", "lot01", "lot02", "lot03",
"lot04", "lot05", "lot06", "lot07", "lot08", "lot09", "lot10", "lot11"}
)
)
);
Dis = dt << Distribution(
Stack( 1 ),
Automatic Recalc( 1 ),
Continuous Distribution(
Column( :npn1 ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
Local Data Filter(
Close Outline( 1 ),
Add Filter( columns( :site ), Where( :site == 1 ) )
),
By( :Wafer )
);
For( i = 1, i <= N Items( Dis ), i++,
theWafer = num(word(-1,Report( dis[i] )[Outline Box( 1 )] << get title,"="));
thelot = dtLookup:lot_id[(dtLookup << get rows where(:wafer == theWafer))[1]];
Report( dis[i] )[Outline Box( 1 )] <<
Set title(
Report( dis[i] )[Outline Box( 1 )] << get title || " Lot="
|| Char(thelot)
)
);Re: WaferID를 By Statement와 일치시켜 배포 제목 편집안녕하십니까?
빠른 답변에 다시 한 번 감사드립니다. 이것은 각 웨이퍼를 제외하고 내가 원하는 것에 가까워지고 있습니다. BatchID가 모두 표시되는 것이 아니라 1개만 표시되어야 합니다. 아마도 예제 테이블을 보는 것이 더 이해가 될 것입니다.
분포 그래프의 제목을 "Distribution Wafer = A, BatchID = X" 및 "Distribution Wafer = B, BatchID = X" 등으로 지정하고 싶습니다. 웨이퍼를 올바른 BatchID에 일치시킵니다. (또는 그 문제에 대해 전혀 일치시키는 방법)
참고: 이미 사용 가능한 BatchID에 각 웨이퍼를 일치시키는 테이블이 있습니다.
| 배치 ID | 웨이퍼 |
| 엑스 | ㅏ |
| 엑스 | 비 |
| 엑스 | 씨 |
| 와이 | 디 |
와이 | 이자형 |
| 와이 | 에프 |
| 지 | G |
| 지 | 시간 |
| 지 | 나 |
내가 가진 또 다른 부차적 질문은 방금 보낸 코드의 경우 By 문의 첫 번째 제목을 제외한 내 그래프의 모든 제목을 업데이트하는 것 같습니다. 이것이 발생할 수 있는 일반적인 이유를 알고 있습니까? 나는 이것을 한 번 이상 보았다.
Re: WaferID를 By Statement와 일치시켜 배포 제목 편집분포를 생성하기 위해 초기 코드 외부에서 제목을 재설정하고 분포 보고서가 생성된 후 제목을 변경합니다.

다음은 스크립트를 기반으로 하지만 샘플 데이터로 수정된 예입니다.
Names Default To Here( 1 );
dt = Current Data Table();
batchids = Associative Array( dt:lot_id );
Dis = dt << Distribution(
Stack( 1 ),
Automatic Recalc( 1 ),
Continuous Distribution(
Column( :npn1 ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
Local Data Filter(
Close Outline( 1 ),
Add Filter( columns( :site ), Where( :site == 1 ) )
),
By( :Wafer )
);
For( i = 1, i <= N Items( Dis ), i++,
Report( dis[i] )[Outline Box( 1 )] <<
Set title(
Report( dis[i] )[Outline Box( 1 )] << get title || " Lots="
|| Char( batchids << get keys )
)
);
참고: 더 나은 그림을 위해 출력의 프로세스 기능 섹션을 수동으로 닫았습니다.