입력 문자열의 웨이퍼가 데이터 테이블에 포함되어 있는지 확인아래에서 입력 문자열이 있습니다.
For( i = 1, i <= N Rows( dtWaferIDList ), i++,
tempi = Column( dtWaferIDList, 1 )[i];
InputString = If( i == 1, "'", "" ) || InputString || tempi || If( i < N Rows( dtWaferIDList ), "','", "'" );
);
그리고 데이터베이스에서 가져온 table1. (표 1의 웨이퍼 열에서) 입력 문자열의 모든 웨이퍼가 해당 열에 포함되어 있는지 확인하고 싶습니다.
-모든 웨이퍼에 데이터가있는 경우 : 디스플레이 메시지 = "사용 가능한 모든 웨이퍼에 대한 데이터".
-그렇지 않은 경우 : 디스플레이 메시지 = "사용 가능한 데이터 없음".
감사합니다!
데이터 테이블스크립팅Re : 입력 문자열의 웨이퍼가 데이터 테이블에 포함되어 있는지 확인이 비교를 위해 연관 배열을 사용할 수 있습니다. 연관 배열을위한 애플리케이션 . 부품 확인 서로 다른 두 데이터 테이블의 열 비교
Re : 입력 문자열의 웨이퍼가 데이터 테이블에 포함되어 있는지 확인@jthi 올바른 방향으로 안내했습니다.제안 된 접근 방식은 매우 긴 리터럴 문자열을 사용하고 있습니다.연관 배열이나 JMP 목록을 사용하는 것이 좋습니다.
다음은 웨이퍼가 포함 된 데이터 테이블을 여는 간단한 스크립트입니다.그런 다음 임의의 웨이퍼 세트가있는 데이터 테이블을 생성합니다.마지막으로 랜덤 세트에 첫 번째 데이터 테이블의 모든 웨이퍼가 포함되어 있는지 확인합니다.
names default to here(1);
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
unique wafers = associative array(dt:Wafer);
// Create a random wafer table and see if it contains all wafers
dtRand = new table("Random",
add rows(60),
new column("Rand Wafer", set each value(random integer(1,24)));
);
random wafers = associative array(dtRand:Rand wafer);
Random wafers << Intersect( unique wafers );
if(n items(Random wafers) == n items( unique wafers),
msg = "data for all wafers available",
msg = "no data available"
);
new window("Message", <<MODAL></MODAL>Re : 입력 문자열의 웨이퍼가 데이터 테이블에 포함되어 있는지 확인안녕하세요 넬슨,
도움을 주셔서 감사합니다! 나는 아직 JMP를 처음 접했고 아직 Associative Arrays를 전혀 사용하지 않았습니다. 스크립팅 가이드와 색인에서 읽었습니다. 그러나 여전히 약간의 혼란이 있습니다. 다음은 내 코드의 위치입니다. (데이터베이스에서 WaferRgDt 테이블을 연 직후)
unique wafers = Associative Array( WaferRgDt:Wafer );
given wafers = Associative Array( dtWaferIDList:WaferList );
intersection = unique wafers; intersection << Intersect( given wafers); //intersection between arrays
//uncommmon2 represents wafers that have no data associated with it.
uncommon2 = given wafers; uncommon2 <<REMOVE></REMOVE>
이것을 실행하면 마침표가있는 빈 메시지 상자가 나타납니다. 그래서 뭔가 여전히 잘못된 것 같습니다. 논리 문제 또는 구문인지 궁금합니다. 가능한 경우 메시지 상자에 키를 작성하는 방법을 찾는 데 어려움이 있습니다. 충분히 분명한 희망. 다시 한 번 감사드립니다!
Re : 입력 문자열의 웨이퍼가 데이터 테이블에 포함되어 있는지 확인문자열 목록을 문자열로 변환하려면 Concat Items ()를 사용할 수 있습니다.
Names Default To Here(1);
aa = Associative Array({"bun",
"shoe",
"tree",
"door"}
);
uniqKeys = aa << get keys;
Show(uniqKeys);
Show(Concat Items(uniqKeys, ", "));
Re : 입력 문자열의 웨이퍼가 데이터 테이블에 포함되어 있는지 확인또한 위의 코드 작성을 돕기 위해이 토론 게시물을 사용했습니다. Re : 두 목록을 비교하는 빠른 방법 (흔하지 않은 요소)?