열 대화 상자 - 열 속성도 복사합니다.<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />여러 데이터 테이블을 열고 해당 데이터 테이블에 새 열을 만드는 스크립트가 있습니다. 열린 모든 데이터 테이블의 모든 열을 표시하는 열 복사기 상자를 스크립팅할 수 있습니까? 속성과 함께 원하는 열만 선택하고 복사할 수 있습니까?
내 현재 코드는 열을 복사하기 전에 데이터 테이블을 하나의 새 테이블로 연결하려고 시도하지만 다음과 같습니다. JMP는 동시에 두 개 이상의 데이터 테이블을 연결할 수 없습니다.
아래는 편집하기 쉽도록 작성한 코드를 요약한 것입니다. 감사해요.
여기에 기본 이름 ( 1 ) ;
// 'PickFile()'을 사용하여 열려는 파일 목록 가져오기(Windows만 해당)
파일 목록 = 파일 선택 (
"더 많은 파일 중 하나 선택" , // 즉각적인
"$데스크탑" , // 초기 폴더
{ "JMP 파일|jmp;jsl;jrn;csv" , "모든 파일|*" } , // 적용할 파일 필터 목록(OS/X에서는 무시됨)
1 , // 적용할 초기 파일 필터(위 목록 항목의 인덱스)
0 , // 저장 플래그 - '저장' 또는 '열기' 창을 지정합니다. 값을 각각 1 또는 0으로 설정합니다.
비어 있는 () , // 기본 파일
다수의 // Multiple - 'Save Flag' = 0인 경우 값 1을 사용하면 둘 이상의 파일을 열 수 있습니다(OS/X에서는 무시됨).
) ;
// 단일 파일만 선택된 경우 fileList는 목록이 아니므로 직접 빌드해야 합니다.
만약에 ( ! 목록입니다 ( 파일 목록 ) ,
파일 목록 = 평가 목록 ( { 파일 목록 } )
) ;
// 파일을 열고 해당 JMP 테이블 이름을 저장합니다.
테이블 이름 = {} ;
을 위한 ( 에프 = 1 , 에프 <= N개 항목 ( 파일 목록 ) , 에프 ++,
dt = 열려 있는 ( 파일목록 [ 에프 ] ) ;
에 집어 넣다 ( 테이블 이름 , dt << getName ) ;
) ;
dt = 새 테이블 ( "연결된 개 H" ) ;
//파일 복사를 위한 Column Copier 생성
dt = 현재 데이터 테이블 () ;
col_dlg = 새창 ( "컬럼 복사기" ,
패널박스 ( "4개의 열을 선택하여 다음을 사용하여 새 테이블을 생성합니다." ,
col_clist = 콜리스트박스 ( 모두 , 너비 ( 200 ) , 최대 선택 ( 4 )) ,
) ,
버튼박스 ( "좋아요" ,
선택된_열_목록 = col_clist << getselected ;
열1 = 선택된_열_목록 [ 1 ] ;
열2 = 선택된_열_목록 [ 2 ] ;
col3 = 선택된_열_목록 [ 삼 ] ;
열4 = 선택된_열_목록 [ 4 ] ;
// 선택한 두 열만 사용하여 새 테이블 생성
dt2 = dt << 하위 집합 ( 열 ( 열 ( dt , 열1 ) , 열 ( dt , 열2 ) , 열 ( dt , col3 ) , 열 ( dt , 열4 ) ) ) ;
col_dlg << 창 닫기 ;
)
) ;
데이터 테이블이 추가되었습니다.
메시지 편집자: Luqman Olawin
Re: 열 대화 상자 - 열 속성도 복사합니다.안녕 짐,
나는 그것을 "이름"으로 바꾸려고 노력했다. "By matching column" 기능에 댓글을 달았는데 저에게 맞는 것 같습니다. 도움을 주셔서 대단히 감사합니다. 정말 감사합니다!
Re: 열 대화 상자 - 열 속성도 복사합니다.오류는 "Lot ID의 Wafer ID"라는 열이 없음을 나타냅니다.이것이 내 데이터 테이블에서 일치하는 열입니다.일치하는 열 이름을 "이름"이라고 생각합니다."로트 ID의 웨이퍼 ID"에 대한 2개의 참조를 "이름"으로 변경합니다.
Re: 열 대화 상자 - 열 속성도 복사합니다.아래는 로그 창에서 발생하는 오류입니다. 데이터 테이블을 첨부하기 위해 게시물을 편집했는데 모두 테이블 이름만 다른 동일한 열이 있습니다.나는 하고 싶다 동일한 이름의 열을 별도로 유지하여 열 복사기가 나타나면 복사하고 싶은 열을 선택할 수 있습니다. 감사해요.
범위가 지정된 데이터 테이블 액세스에는 'dt:Wafer ID in lot ID' , dt:Wafer ID in lot ID/*###*/의 액세스 또는 평가에서 데이터 테이블 열 또는 변수가 필요합니다.
다음 스크립트에서 /*###*/로 표시된 오류
여기에 기본 이름( 1 );
fileList = 파일 선택(
"더 많은 파일 중 하나 선택",
"$데스크탑",
{"JMP 파일|jmp;jsl;jrn;csv", "모든 파일|*"},
1,
0,
비어 있는(),
다수의
);
If( !Is List( fileList ),
fileList = 평가 목록( {fileList} )
);
테이블 이름 = {};
For( f = 1, f <= N 항목( fileList ), f++,
dttemp = Open( 파일 목록);
Insert Into( tableNames, dttemp << getName );
만약( 에프 == 1,
dt = dttemp,
dtx = dt << 조인(
( dttemp ),
열 일치 기준(
dt:로트 ID의 웨이퍼 ID/*###*/ = dttemp:로트 ID의 웨이퍼 ID
),
기본 테이블 Order() 유지,
출력 테이블 이름( "Concatenated Watch H" )
);
닫기( dttemp, nosave );
닫기( dt, nosave );
dt = dtx;
);
);
dt = 현재 데이터 테이블();
col_dlg = 새 창( "열 복사기",
패널 상자( "4개의 열을 선택하여 다음을 사용하여 새 테이블을 생성합니다.",
col_clist = 열 목록 상자( 전체, 너비( 200 ), 최대 선택됨( 4 ) )
),
버튼 상자( "확인",
selected_column_list = col_clist << getselected;
col1 = selected_column_list[1];
col2 = selected_column_list[2];
col3 = selected_column_list[3];
col4 = selected_column_list[4];
dt2 = dt << 부분 집합(
열(
열( dt, col1 ),
열( dt, col2 ),
열( dt, col3 ),
열( dt, col4 )
)
);
col_dlg << 창 닫기;
)
);
Re: 열 대화 상자 - 열 속성도 복사합니다.다른 파일에 대해 알려주십시오. 이름이 같은 열이 있습니까? 이름이 같은 모든 열은 "동일한 이름 열 병합(1)" 문을 사용하여 조인에서 서로의 위에 축소됩니다.동일한 명명된 열을 별도로 유지하는 조인에 의존하는 경우 조인을 수행하는 코드 섹션은 조인된 데이터 테이블의 "이름"이라는 열이 더 이상 "이름"이 아니라 "<데이터 테이블 1 이름>의 이름"이라는 것을 인식해야 하며 조인이 발생할 수 있도록 스크립트에서 처리해야 합니다.
데이터 테이블의 "이름" 열이 각 행의 고유 식별자입니까?
JMP 로그(보기==>로그)에 어떤 오류 메시지가 표시되는지 알려주실 수 있습니까?
다음은 내 시스템에서 오류 없이 작동하는 코드입니다.입력 파일을 찾기 위해 여는 디렉토리와 조인에서 일치하는 데 사용되는 열이 코드와 다릅니다.그 외에는 동일한 코드여야 합니다.이 코드는 오류 없이 작동합니다. 이 코드가 작동하려면 일치에 사용되는 열(" 로트 ID의 웨이퍼 ID").
여기에 기본 이름 ( 1 ) ;
파일목록 = 파일 선택 (
"더 많은 파일 중 하나 선택" , // 즉각적인
"c:\사용자\txjim\문서\다중 파일" , // 초기 폴더
{ "JMP 파일|jmp;jsl;jrn;csv" , "모든 파일|*" } , // 적용할 파일 필터 목록(OS/X에서는 무시됨)
1 , // 적용할 초기 파일 필터(위 목록 항목의 인덱스)
0 , // 저장 플래그 - '저장' 또는 '열기' 창을 지정합니다. 값을 각각 1 또는 0으로 설정합니다.
비어 있는 () , // 기본 파일
다수의 // 다중 - 하나 이상의 파일을 열 수 있습니다(OS/X에서는 무시됨).
) ;
만약에 ( ! 목록입니다 ( 파일목록 ) ,
파일목록 = 평가 목록 ( {fileList} )
) ;
테이블 이름 = {} ;
을 위한 ( 에프 = 1 , 에프 <= N개 항목 ( 파일목록 ) , 에프 ++,
dttemp = 열려 있는 ( 파일목록);
에 집어 넣다 ( 테이블 이름 , dttemp << getName ) ;
만약에 ( 에프 == 1 ,
dt = dttemp ,
dtx = dt << 가입하다 (
와( dttemp ) ,
열 일치 기준( dt : 이름 ( "로트 ID의 웨이퍼 ID" ) = dttemp : 이름 ( "로트 ID의 웨이퍼 ID" ) ) ,
기본 테이블 순서 유지() ,
같은 이름 열 병합( 1 ) ,
출력 테이블 이름( "연결된 시계 H" )
) ;
닫다 ( dttemp , nosave ) ;
닫다 ( dt , nosave ) ;
dt = dtx ;
) ;
) ;
dt = 현재 데이터 테이블 () ;
col_dlg = 새창 ( "컬럼 복사기" ,
패널 박스 ( "4개의 열을 선택하여 다음을 사용하여 새 테이블을 생성합니다." , col_clist = 열 목록 상자 ( 모두 , 너비( 200 ) , 최대 선택( 4 ) ) , ) ,
버튼 박스 ( "좋아요" ,
선택된_열_목록 = col_clist << getselected;
열1 = 선택된_열_목록[ 1 ] ;
열2 = 선택된_열_목록[ 2 ] ;
col3 = 선택된_열_목록[ 삼 ] ;
열4 = 선택된_열_목록[ 4 ] ;
dt2 = dt << 하위 집합 ( 열( 열 ( dt , 열1 ) , 열 ( dt , 열2 ) , 열 ( dt , 열3 ) , 열 ( dt , col4 ) ) ) ;
col_dlg << 창 닫기;
) ;
Re: 열 대화 상자 - 열 속성도 복사합니다.작동하지 않습니다. 변경 사항은 테이블을 조인하지도 않습니다.
Re: 열 대화 상자 - 열 속성도 복사합니다.문제는 테이블에 동일한 이름의 열이 있을 때 JMP가 테이블을 조인할 때 열의 이름을 바꾸는 것입니다.따라서 첫 번째 조인 후 "이름"이라는 열이 변경되었습니다.따라서 줄을 변경하십시오.
dtx = dt << 가입하다 ( 와 함께 ( dttemp ) , 일치하는 열 기준 ( 이름 = 이름 ) , 기본 테이블 순서 유지 () , 출력 테이블 이름 ( "연결된 시계 H" ) ) ;
에게
dtx = dt << 가입하다 ( 와 함께 ( dttemp ) , 일치하는 열 기준 ( 이름 = 이름 ) , 기본 테이블 순서 유지 () , 출력 테이블 이름 ( "연결된 시계 H" ), 같은 이름의 열 병합(1) ) ;
Re: 열 대화 상자 - 열 속성도 복사합니다.고마워 짐. 타이밍이 문제를 해결하지 못했습니다(또한 시간을 늘려 보았습니다). 그러나 닫기 기능은 잘 작동합니다. 이제 유일한 문제는 세 번째 파일이 최근에 조인된 테이블과 조인하지 않고 자체적으로 열리는 것입니다. 어제부터 여러가지 방법을 시도해봤지만 잘 안되네요.
Re: 열 대화 상자 - 열 속성도 복사합니다.이 코드는 첫 번째 데이터 테이블을 연 다음 두 번째 테이블을 열고 새로 조인된 데이터 테이블을 만들고 원본 테이블과 방금 연 테이블을 닫고 새로 조인된 테이블을 유지하기 위한 것입니다.그런 다음 세 번째 테이블을 엽니다. 이전에 조인된 테이블에 조인하여 새 데이터 테이블을 만듭니다.그런 다음 이전에 조인된 테이블과 새로 열린 테이블을 닫고 가장 최근에 조인된 테이블을 유지합니다.....등.
타이밍 문제가 있을 수 있으며 닫기 기능 중 하나를 제거한 문제가 있습니다.다음 코드로 변경해주세요.
만약에 ( 에프 == 1 ,
dt = dttemp ,
dtx = dt << 가입하다 ( 와 함께 ( dttemp ) , 일치하는 열 기준 ( 이름 = 이름 ) , 기본 테이블 순서 유지 () , 출력 테이블 이름 ( "연결된 시계 H" ) ) ;
대기(1);
닫다 ( dttemp , 노세이브 ) ;
닫기(dt,nosave);
dt = dtx ;
) ;
Re: 열 대화 상자 - 열 속성도 복사합니다.안녕 짐,
도움을 주셔서 감사합니다. 여러 번 시도한 후에 알아 냈습니다. 나는 그 스레드에 답장을 했어야 했다. 아래는 제가 사용한 코드입니다. 지금 가지고 있는 문제는 2개 이상의 테이블을 함께 조인할 수 없다는 것입니다. 3개의 테이블을 조인하려고 할 때마다 하나가 아닌 2개의 서로 다른 연결된 테이블이 표시됩니다. 첫 번째는 연결된 데이터 테이블 1과 2를 보여주고 두 번째는 연결된 데이터 테이블 1과 3을 보여줍니다.
하나의 연결된 데이터 테이블이 없으면 컬럼 복사기를 사용하기가 매우 어렵습니다. 그래서 대신에 여러 데이터 테이블의 모든 열을 표시하도록 열 복사기를 사용할 수 있습니까?
여기에 기본 이름 ( 1 ) ;
// 'PickFile()'을 사용하여 열려는 파일 목록 가져오기(Windows만 해당)
파일 목록 = 파일 선택 (
"더 많은 파일 중 하나 선택" , // 즉각적인
"$데스크탑" , // 초기 폴더
{ "JMP 파일|jmp;jsl;jrn;csv" , "모든 파일|*" } , // 적용할 파일 필터 목록(OS/X에서는 무시됨)
1 , // 적용할 초기 파일 필터(위 목록의 항목 인덱스)
0 , // 저장 플래그 - '저장' 또는 '열기' 창을 지정합니다. 값을 각각 1 또는 0으로 설정합니다.
비어 있는 () , // 기본 파일
다수의 // 다중 - 하나 이상의 파일을 열 수 있습니다(OS/X에서는 무시됨).
) ;
// 단일 파일만 선택된 경우 fileList는 목록이 아니므로 직접 빌드해야 합니다.
만약에 ( ! 목록입니다 ( 파일 목록 ) ,
파일 목록 = 평가 목록 ( { 파일 목록 } )
) ;
// 파일을 열고 해당 JMP 테이블 이름을 저장합니다.
테이블 이름 = {} ;
을 위한 ( 에프 = 1 , 에프 <= N개 항목 ( 파일 목록 ) , 에프 ++,
dttemp = 열려 있는 ( 파일 목록 [ 에프 ] ) ;
에 집어 넣다 ( 테이블 이름 , dttemp << getName ) ;
// 데이터 테이블을 함께 추가
만약에 ( 에프 == 1 ,
dt = dttemp ,
dtx = dt << 가입하다 ( 와 함께 ( dttemp ) , 행 번호별 , 일치하는 열 기준 ( 이름 = 이름 ) , 기본 테이블 순서 유지 () , 출력 테이블 이름 ( "연결된 시계 H" ) ) ;
닫다 ( dttemp , 노세이브 ) ;
dt = dtx ;
) ;
) ;
dt = 현재 데이터 테이블 () ;
//파일 복사를 위한 Column Copier 생성
col_dlg = 새창 ( "컬럼 복사기" ,
패널 박스 ( "4개의 열을 선택하여 다음을 사용하여 새 테이블을 생성합니다." ,
col_clist = 열 목록 상자 ( 모두 , 너비 ( 200 ) , 최대 선택 ( 4 ) ) ,
) ,
버튼 박스 ( "좋아요" ,
선택된_열_목록 = col_clist << getselected ;
열1 = 선택된_열_목록 [ 1 ] ;
열2 = 선택된_열_목록 [ 2 ] ;
col3 = 선택된_열_목록 [ 삼 ] ;
열4 = 선택된_열_목록 [ 4 ] ;
// 선택한 두 열만 사용하여 새 테이블 생성
dt2 = dt << 하위 집합 ( 열 ( 열 ( dt , 열1 ) , 열 ( dt , 열2 ) , 열 ( dt , col3 ) , 열 ( dt , 열4 ) ) ) ;
col_dlg << 창 닫기 ;
)
) ;
Re: 열 대화 상자 - 열 속성도 복사합니다.이 질문의 마지막 포즈에서 테이블을 함께 연결하지 않고 수평적으로 조인하고 싶다고 표시했습니다.아래는 이전에 보내드린 스크립트를 재작업한 것이지만 이번에는 테이블이 수평으로 조인되었습니다.
여기에 기본 이름 ( 1 ) ;
// 'PickFile()'을 사용하여 열려는 파일 목록 가져오기(Windows만 해당)
파일 목록 = 파일 선택 (
"더 많은 파일 중 하나 선택" , // 즉각적인
"$데스크탑" , // 초기 폴더
{ "JMP
파일|jmp;jsl;jrn;csv" , "모든 파일|*" } , // 적용할 파일 필터 목록(OS/X에서는 무시됨)
1 , // 적용할 초기 파일 필터(위 목록 항목의 인덱스)
0 , // 플래그 저장 - '저장' 또는 '열기' 창을 지정합니다. 값을 각각 1 또는 0으로 설정합니다.
비어 있는 () , // 기본 파일
다수의 // 다중 - 하나 이상의 파일을 열 수 있습니다(OS/X에서는 무시됨).
) ;
// 단일 파일만 선택된 경우 fileList는 목록이 아니므로 직접 빌드해야 합니다.
만약에 ( ! 목록입니다 ( 파일목록 ) ,
파일 목록 = 평가 목록 ( {fileList} )
) ;
// 파일을 열고 해당 JMP 테이블 이름을 저장합니다.
테이블 이름 = {} ;
을 위한 ( 에프 = 1 , 에프 <= N개 항목 ( 파일목록 ) , 에프 ++,
dttemp = 열려 있는 ( 파일목록);
에 집어 넣다 ( 테이블 이름 , dtemp << getName ) ;
// 데이터 테이블을 함께 추가
만약에 ( 에프 == 1 ,
dt = dttemp ,
dtx = dt << 가입하다 ( 와( dttemp ) , 행 번호 기준) ;
닫다 ( dttemp , nosave ) ;
dt = dtx ;
닫다 ( dtx , nosave ) ;
) ;
) ;
//파일 복사를 위한 Column Copier 생성
col_dlg = 새창 ( "컬럼 복사기" ,
패널 박스 ( "4개 선택
다음을 사용하여 새 테이블을 생성하는 열:" , col_clist = 열 목록 상자 ( 모두 , 너비( 200 ) , 최대 선택( 4 ) ) , ) ,
버튼 박스 ( "좋아요" ,
선택된_열_목록 = col_clist << getselected;
열1 = 선택된_열_목록[ 1 ] ;
열2 = 선택된_열_목록[ 2 ] ;
col3 = 선택된_열_목록[ 삼 ] ;
열4 = 선택된_열_목록[ 4 ] ;
// 선택한 두 열만 사용하여 새 테이블 생성
dt2 = dt << 하위 집합 ( 열( 열 ( dt , 열1 ) , 열 ( dt , 열2 ) , 열 (dt , 열3 ) , 열 (dt , col4 ) ) ) ;
col_dlg << 창 닫기;
)
) ;