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

아래에서 만든 코드를 사용하면 제목을 편집 할 수 있지만 이전에 만든 연관 배열에 나열된 모든 batchid가 당연히 나열됩니다. (이 배열은 내가 가지고있는 테이블의 열에있는 모든 batchID를 나열합니다.) 내가하고 싶은 것은 Wafer를 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를 일치시켜 배포 제목 편집배포를 생성하기 위해 초기 코드 외부에서 제목을 재설정하고 배포 보고서가 생성 된 후 제목을 변경합니다.

다음은 스크립트를 기반으로하지만 샘플 데이터로 수정 된 예입니다.
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 )
)
);
참고 : 더 나은 그림을 위해 출력의 프로세스 기능 섹션을 수동으로 닫았습니다.
Re : WaferID와 By Statement를 일치시켜 배포 제목 편집안녕하세요 txnelson,
빠른 답변에 다시 한 번 감사드립니다. 이것은 모든 웨이퍼가 아닌 1 개의 BatchID 만 표시되어야한다는 점을 제외하고는 내가 원하는 것에 가까워지고 있습니다. 아마도 예제 테이블을 보는 것이 더 합리적 일 것입니다.
배포 그래프의 제목을 "배포 웨이퍼 = A, BatchID = X"및 "배포 웨이퍼 = B, BatchID = X"등으로 지정하고 싶습니다. 웨이퍼를 올바른 BatchID와 일치시킵니다. (또는 그 문제에 대해 그것들을 일치시키는 방법)
참고 : 이미 사용 가능한 BatchID와 각 웨이퍼를 일치시키는 테이블이 있습니다.
| BatchID | 웨이퍼 |
| 엑스 | ㅏ |
| 엑스 | 비 |
| 엑스 | 씨 |
| 와이 | 디 |
와이 | 이자형 |
| 와이 | 에프 |
| 지 | 지 |
| 지 | H |
| 지 | 나는 |
내가 가진 또 다른 부수적 인 질문은 방금 보낸 코드의 경우 By 문에서 첫 번째를 제외하고 내 그래프의 모든 제목을 업데이트하는 것처럼 보입니다. 이런 일이 발생하는 일반적인 이유를 알고 있습니까? 나는 이것을 한 번 이상 보았다.
Re : WaferID와 By Statement를 일치시켜 배포 제목 편집Distribution에 대한 Outline Box ()에서 웨이퍼 값을 제거한 다음 조회 데이터 테이블에서 조회를 수행하고 BatchID를 가져 오거나 내 예의 경우 Lot_id를 가져 오는 것은 간단한 문제입니다. 그런 다음 Outline Box ()의 제목에 추가합니다.

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를 일치시켜 배포 제목 편집안녕 txnelson! 빠른 응답과 멋진 솔루션에 다시 한 번 감사드립니다.
내 룩업 테이블에 여전히 문제가 있습니다. "theWafer"가 올바르게 발견 된 것 같지만 디버거에서 실행하면 "theLot"가 채워지지 않습니다. 이것에 문제가 있습니까? 첨부 된 정확한 코드입니다. 내 헤더는 "Distributions Wafer = ABC123, BatchID =."처럼 보입니다.
BatchIDs = 참조 용 조회 테이블
| BatchID | 웨이퍼 |
| 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를 일치시켜 배포 제목 편집마지막 응답에서 제공 한 예제가 도움이됩니까? 그것이 출발점이되어야합니다.