변수 이름 목록을 제외한 모든 데이터 테이블을 닫습니다.오늘은 데이터 테이블 이름 변수를 사용하여 반복 프로시저가 실행되므로 선택한 수의 데이터 테이블을 제외한 모든 테이블을 닫으려고 합니다.테이블이 3개 있어요.하나는 결과가 수집되는 곳이고, 하나는 첫 번째 테이블의 유효하지 않은 결과가 수집되는 곳이고, 다른 하나는 비교에 사용할 ID 값을 알기 위해 사용자가 스크립트를 위해 여는 곳입니다.테이블을 닫을 수 있는 토론을 찾았지만(여기 스크립트에 포함되어 있음) 테이블 이름 목록에 인용된 텍스트를 사용합니다.사용자는 세 번째 테이블의 반복마다 다른 데이터 테이블을 선택하게 되므로 데이터 테이블 이름 변수를 사용하여 이를 목록에 포함하고 처리가 끝날 때 열어 두려면 어떻게 해야 합니까?
DontClose = {CompareTable, CollectionTable, IDTable}; // Example names of tables you want to leave open
//CompareTable = "Validation Table"
//Collection Table = "Unmatched Values"
//IDTable = could be anything but I want to leave this open once the processing loop is completed
// Loop backwards through the list, so the table numbers do not change
For( i = N Table(), i > 0, i--,
print( Data Table(i) << Get Name ) ;
If( Contains( DontClose, Data Table( i ) << get name ),
Continue(),
Close( Data Table( i ), "No Save" )
)
);Re: 변수 이름 목록을 제외한 모든 데이터 테이블을 닫습니다.작동할 수도 있지만 이는 사용이 완료된 후 각 테이블에 대해 Close() 문을 생성하는 것과 비슷합니다. 나는 더 적은 수의 선을 사용하여 좀 더 우아한 것을 사용하려고 했습니다. 내가 시도한 또 다른 유사한 옵션은 모든 테이블 이름을 목록에 넣고 비교할 유지 목록을 갖는 것입니다. 문제는 열려 있어야 하는 세 개의 테이블 중 하나가 사용자에 의해 선택되어 사용 방식에 따라 변경된다는 것입니다. 이것이 제가 별칭 테이블 이름을 사용하는 유일한 이유입니다. 그리고 이것을 다른 사람과 공유하자마자 스크립트가 있는 테이블 이름이 변경되므로 필요하지 않은 데이터 테이블 이름을 하드 코딩하지 않는 것이 좋습니다. 정말 퍼즐이군요! 답장을 보내 주셔서 감사합니다!Re: 변수 이름 목록을 제외한 모든 데이터 테이블을 닫습니다.전체 스크립트를 게시할 수 없습니다. 독점 서버에 액세스하므로 익명 버전을 만드는 데 많은 시간이 걸립니다. 하지만 당신은 내가 그것을 설명하지 못했다고 생각했고 그것이 바로 그것이 중단되는 이유입니다. 내 이론을 테스트하고 다시 보고하겠습니다!
감사합니다!Re: 변수 이름 목록을 제외한 모든 데이터 테이블을 닫습니다.삭제할 모든 데이터 테이블을 생성하므로 각 테이블 참조가 생성될 때 목록에 삽입하는 것은 어떨까요? 그런 다음 목록을 닫을 때가 되면 목록을 반복할 수 있습니다.
Re: 변수 이름 목록을 제외한 모든 데이터 테이블을 닫습니다.스크립트를 게시할 수 있나요?
요약 테이블이 연결된 테이블을 닫으면 요약 테이블이 자동으로 닫힙니다.
Re: 변수 이름 목록을 제외한 모든 데이터 테이블을 닫습니다.어머! 너무 빨리 말을 했네요. 이 스크립트를 사용하여 테이블 열기 및 닫기를 테스트했습니다.
내 스크립트가 하는 일은 스크립트의 전체 실행을 위해 열어 두어야 하는 두 개의 테이블을 여는 것입니다. 하나는 동일하지 않은 비교 대상이고 다른 하나는 (사용자가 선택한) ID 목록을 저장하는 것입니다. 그런 다음 서버에서 데이터를 가져오고, 수많은 요약, 전치 및 기타 데이터 조작을 실행하고, 결과를 스크립트가 있는 테이블에 복사하고 차이점을 대상 테이블에 복사한 다음(둘 다 열어 두어야 함) 모든 요약을 닫습니다. 다음 ID로 넘어가기 전에 서버에서 생성된 테이블과 테이블입니다.
다음과 같은 오류가 계속 발생합니다.
'데이터 테이블', 데이터 테이블/*###*/(i) 액세스 또는 평가에서 데이터 테이블{28}을 찾을 수 없습니다.
테이블 번호가 사라져서요?Re: 변수 이름 목록을 제외한 모든 데이터 테이블을 닫습니다.@Wendy_Murphrey 이것이 티켓이다!내가 필요한 것처럼 작동합니다.이 스크립트는 수백 개의 테이블을 열거나 생성할 수 있으므로 내 요구 사항에 완벽합니다.
고마워요, 고마워요, 고마워요!나는 JSL에서 매일 새로운 것을 배웁니다!
Re: 변수 이름 목록을 제외한 모든 데이터 테이블을 닫습니다.@guillaumebugnon 모든 테이블에 해당 변수 세트가 필요하다는 것을 알았습니다.내가 작성 중인 스크립트가 열리고 다수의 테이블이 생성되므로 덜 강렬한 목적을 위해 남겨두는 것이 가장 좋다고 생각되는 단계가 추가됩니다.내가 궁극적으로 원하는 것은 ID 목록(200개가 넘을 수 있음)을 갖고 스크립트가 프로세스를 실행하여 각 ID에 대해 최소 75개의 요약을 생성하도록 하는 것입니다.이것이 작동하더라도 Wendy Murphrey의 솔루션이 내 응용 프로그램에 딱 맞는 것 같습니다.
시간을 내어 딜레마를 해결하는 데 도움을 주셔서 감사합니다!
Re: 변수 이름 목록을 제외한 모든 데이터 테이블을 닫습니다.다음은 데이터 테이블 참조를 사용할 수 있는 접근 방식입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Fitness.jmp" );
dt3 = Open( Pick File( "Select File", "$DOCUMENTS" ) );
dontClose = Eval List( {dt, dt2, dt3} );
Show( dontClose );
// Loop backwards through the list, so the table numbers do not change
For( i = N Table(), i > 0, i--,
If( Contains( DontClose, Data Table( i ) ),
Continue(),
Close( Data Table( i ), "No Save" )
)
);
도움이 되었기를 바랍니다!
Re: 변수 이름 목록을 제외한 모든 데이터 테이블을 닫습니다.안녕하세요,
각 jmp 데이터 테이블에 하나의 테이블 변수를 설정할 수도 있습니다.
dt << Set Table Variable("ToClose","N");그런 다음 반복하여 값을 확인할 수 있습니다.
For( i = N Table(), i > 0, i--,
vtoclose = Data Table(i) << Get Table Variable ("ToClose") ;
If ( Contains(vtoclose,"Y") >=1 ,
Close(Data Table(i),NoSave),
print("ToClose is not set to Y : do not close")
);
);