별도의 데이터 테이블에서 열 지정<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />데이터 테이블 1의 열 값과 데이터 테이블 2의 열에서 가장 가깝게 일치하는 값을 일치시키는 스크립트를 작성하려고 합니다. 서로 다른 두 데이터 테이블의 입력을 허용하도록 JSL 플랫폼을 작성할 수 있습니까?그렇지 않은 경우 좋은 대체 접근 방식을 아는 사람이 있습니까?
Re: 별도의 데이터 테이블에서 열 지정고마워요 짐!
Re: 별도의 데이터 테이블에서 열 지정N Table()은 열린 데이터 테이블의 개수를 반환합니다.
당신은 그들의 이름을 얻기 위해 반복할 수 있습니다
For(I=1, I<= N 테이블(),I++,
show(데이터 테이블(I)<<이름 가져오기);
);
Re: 별도의 데이터 테이블에서 열 지정고마워요 짐.열린 데이터 테이블 목록을 반환하는 함수를 알고 있나요?
Re: 별도의 데이터 테이블에서 열 지정동일한 디스플레이 창의 서로 다른 데이터 테이블에서 2개의 Col List Box()를 채우는 데에는 제한이 없습니다.Help==>Scripting Index로 이동하여 Display Box의 세 번째 예제인 Col List Box()를 보면 하나의 데이터 테이블의 열을 표시하고 열을 선택할 수 있는 예제를 볼 수 있습니다.이 예제 스크립트는 코드를 복제하되 참조 변수에 대한 "dt" 참조를 두 번째 데이터 테이블로 변경하여 동일한 표시 창에 있도록 쉽게 확장할 수 있습니다.
Re: 별도의 데이터 테이블에서 열 지정안녕하세요 짐,
최종 스크립트에서 다음을 만들고 싶습니다. 사용자가 dt1과 dt2 모두에서 열을 선택할 수 있는 인터페이스를 갖도록 추가 기능에 추가할 수 있는 플랫폼입니다. 이것이 가능한가?그렇지 않은 경우 해결 방법을 알고 있습니까?
// 플랫폼 입력 예시.
이름의 기본값은 여기에 있습니다. ( 1 ) ;
dt = 현재 데이터 테이블 () ;
새창 ( "가장 가까운 일치로 병합" ,
<< 모달 ,
텍스트 상자 ( "입력 선택" ) ,
H 목록 상자 (
패널박스 ( "dt1 열 선택" , getCols = 열 목록 상자 ( dt , 모두 ) ) , // dt1에서 열을 가져옵니다.
// dt2에서도 열을 가져오도록 일부 스크립트를 추가합니다.
V 목록 상자 (
패널박스 ( "dt1 열" ,
라인업 상자 ( N 열 ( 2 ) ,
버튼 상자 ( "dt1 열" , Cols1 << 추가 ( getCols << 선택받기 ) ) ,
Cols1 = 열 목록 상자 ( N 라인 ( 1 ) , 최대 품목 ( 1 ) , 숫자 )
)
) ,
패널박스 ( "dt2 열" ,
라인업 상자 ( N 열 ( 2 ) ,
버튼 상자 ( "dt2 열" , Cols2 << 추가 ( getCols << 선택받기 ) ) ,
Cols2 = 열 목록 상자 ( N 라인 ( 1 ) , 최대 품목 ( 1 ) , 숫자 )
)
)
)
)
) ;
Re: 별도의 데이터 테이블에서 열 지정안녕하세요 짐,
스크립트를 작성해 주셔서 감사합니다. 구현에 사용할 것 같습니다.dt1의 값이 dt2의 값 외부에 있는 경우를 설명하기 위해 몇 줄을 추가했습니다.
이름의 기본값은 여기에 있습니다. ( 1 ) ;
// 샘플 데이터 테이블을 엽니다.
dt = 열려 있는 ( "$SAMPLE_DATA/반도체 능력.jmp" ) ;
// 조회 방법을 보여주기 위해 몇 개의 데이터 테이블을 만듭니다.
// 여러 테이블에
dt1 = dt << 하위 집합 ( 선택한 행 ( 0 ) , 기둥 ( npn1 ) ) ;
dt2 = dt << 하위 집합 ( 선택한 행 ( 0 ) , 기둥 ( npn2 ) ) ;
닫다 ( dt , 노세이브 ) ;
// 테이블을 정렬하여 가장 가까운 값을 찾습니다.
dt2 << 종류 ( ~에 의해 ( NPN2 ) , 테이블 교체 ( 1 ) ) ;
// 첫 번째 테이블에 열을 생성하여 행 번호를 저장합니다.
// 가장 가까운 두 번째 테이블에서
dt1 << 새 열 ( "가장 가까운 행 번호" ) ;
// 두 번째 행 번호가 포함된 열을 만듭니다.
// 데이터 테이블, 첫 번째 테이블과 조인하는 데 사용할 수 있음
dt2 << 새 열 ( "행 번호" , 가치 ( 1 :: N 행 ( dt2 ) ) ) ;
// 두 번째 테이블에서 해당 테이블에 가장 가까운 값을 찾습니다.
// 첫 번째 데이터 테이블의 값
을 위한 ( 나 = 1 , 나 <= N 행 ( dt1 ) , 나 ++,
선택됨 = dt2 << 어디에서 행을 가져오나요? ( dt2 : NPN2 > dt1 : NPN1 [ 나 ] ) ;
만약에 ( N 행 ( 선택됨 ) == 0 ,
dt1 : 가장 가까운 행 번호 [ 나 ] = N 행 ( dt2 ) , // 경우에 추가됨: TheSelected가 비어 있음
만약에 ( 선택됨 [ 1 ] > 1 ,
만약에 ( dt2 : NPN2 [ 선택된 [ 1 ]] - dt1 : NPN1 [ 나 ] > dt1 : NPN1 [ 나 ] - dt2 : NPN2 [ 선택된 [ 1 ] - 1 ] ,
dt1 : 가장 가까운 행 번호 [ 나 ] = 선택된 [ 1 ] ,
dt1 : 가장 가까운 행 번호 [ 나 ] = 선택된 [ 1 ] - 1
) ,
dt1 : 가장 가까운 행 번호 [ 나 ] = 선택된 [ 1 ] ; // 사례에 추가됨: TheSelected[1] == 1
)
) ;
) ;
// 발견된 가장 가까운 값을 기준으로 테이블을 조인합니다.
결합됨 = dt1 << 가입하다 (
와 함께 ( dt2 ) ,
출력 테이블 이름 ( "가장 가까운 값이 결합되었습니다" ) ,
일치하는 열 기준 ( : 가장 가까운 행 번호 = : 행 번호 ) ,
배수 삭제 ( 0 , 0 ) ,
불일치 항목 포함 ( 1 , 0 ) ,
메인 테이블 순서 유지 ( 1 )
) ;
Re: 별도의 데이터 테이블에서 열 지정다음은 원하는 작업을 수행할 수 있는 방법 중 하나를 보여주는 샘플 스크립트입니다.
이름의 기본값은 여기에 있습니다. ( 1 );
// 샘플 데이터 테이블을 엽니다.
dt = 열려 있는 ( "$SAMPLE_DATA/반도체 능력.jmp" );
// 조회 방법을 보여주기 위해 몇 개의 데이터 테이블을 만듭니다.
// 여러 테이블에
dt1 = dt << 하위 집합 ( 선택한 행( 0 ), 열( npn1 ) );
dt2 = dt << 하위 집합 ( 선택한 행( 0 ), 열( npn2 ) );
닫다 ( dt, nosave );
// 테이블을 정렬하여 가장 가까운 값을 찾습니다.
DT2 << 종류 (( NPN2 )로, 테이블 교체( 1 ) );
// 첫 번째 테이블에 열을 생성하여 행 번호를 저장합니다.
// 가장 가까운 두 번째 테이블에서
dt1 << 새 열 ( "가장 가까운 행 번호" );
// 두 번째 행 번호가 포함된 열을 만듭니다.
// 데이터 테이블, 첫 번째 테이블과 조인하는 데 사용할 수 있음
DT2 << 새 열 ( "행 번호" , 값( 1 :: N 행 ( dt2 ) ) );
// 두 번째 테이블에서 해당 테이블에 가장 가까운 값을 찾습니다.
// 첫 번째 데이터 테이블의 값
을 위한 ( 나는 = 1 , 나는 <= N 행 ( dt1 ), i++,
TheSelected = dt2 << 어디에서 행을 가져오나요? ( dt2:NPN2 > dt1:NPN1 );
만약에 ( 선택됨[ 1 ] > 1 ,
만약에 ( dt2:NPN2[선택됨[ 1 ]] - dt1:NPN1 > dt1:NPN1 - dt2:NPN2[선택됨[ 1 ] - 1 ],
dt1:가장 가까운 행 번호 = 선택됨[ 1 ],
dt1:가장 가까운 행 번호 = 선택됨[ 1 ] - 1
)
);
);
// 발견된 가장 가까운 값을 기준으로 테이블을 조인합니다.
dtjoined = dt1 << 가입하다 (
With( dt52 ), 출력 테이블 이름( "가장 가까운 값이 결합되었습니다" ),
열 일치를 통해(:가장 가까운 행 번호 = :행 번호),
배수 삭제( 0 , 0 ),
불일치 포함( 1 , 0 ),
메인 테이블 순서 유지( 1 )
);