개인 데이터 테이블 켜기 및 끄기많은 스크립트를 깨끗하게 유지하기 위해 '비공개'를 꽤 많이 사용합니다. 그러나 스크립트 문제를 해결하는 경우 개인용 테이블을 사용하는 데 방해가 되므로 주석 처리해야 하며 변경 사항이 적용되는지 확인하기 위해 변경할 때 주석 처리를 제거해야 합니다.
방법이 있습니까, 아니면 JMP에 이미 비공개 테이블을 켜거나 끌 수 있는 전역 방법이 있습니까? 내 머릿속에서는 시간을 내어 비공개를 사용하거나 사용하지 않고 내 코드를 복제하고 테스트 변수에 연결할 수 있지만 이것이 최선의 대답은 아닌 것 같습니다.
이를 수행하는 방법에 대한 아이디어가 있는지 확실하지 않았습니다. 감사해요!
자동화 및 스크립팅Re: 개인 데이터 테이블 켜기 및 끄기훌륭해요, 빈스! 내가 한 것과 비슷하지만 데이터 뷰가 양방향으로 이동하도록 허용하는 것이 훨씬 더 우아합니다.
Re: 개인 데이터 테이블 켜기 및 끄기동의 @Craige_Hales 그리고 @txnelson 그 점들에.@레셀 , 내가 일반적으로 개인 테이블을 선택하는 주된 이유는 변경/업데이트/등 많은 테이블을 만드는 스크립트가 있을 때입니다. 혼자 남겨지면 윈도가 나타나거나 사라지는 등 사용자 앞의 화면에서 매우 화려할 수 있습니다. 보이지 않는 경우 사용자는 창 목록에서 많은 활동을 볼 수 있습니다. 주의 산만.
필요한 시각적 단계만 시각적으로 표시하여 사용자에게 가장 깔끔한 인터페이스를 제공하므로 대부분의 경우 비공개 테이블을 선택합니다. 테이블 수와 사용자 컴퓨터에 따라 RAM 이점은 전체 속도 향상이기도 합니다.
Re: 개인 데이터 테이블 켜기 및 끄기짐이 맞습니다. 비공개 테이블에는 OS 창 구조가 생성되지 않고 보이지 않는 테이블에는 표시되지 않는 창이 있습니다. 100개 또는 1000개의 테이블이 있는 경우 합산될 수 있는 약간의 CPU 및 메모리 절약이 있을 수 있습니다.
개인적으로 사용한 유일한 시간은 내가 글을 쓸 때였습니다. FileSnapper 실행 중인 다른 JSL에 대해 JSL 환경을 방해하지 않고 애플리케이션이 조용히 실행되기를 원했습니다. 대부분 개인 데이터 테이블을 전혀 감지할 수 없습니다. 약간 침입하는 열 이름이 있습니다.
Re: 개인 데이터 테이블 켜기 및 끄기네이선, 이게 전혀 도움이 되나요?
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
privateTable = Function({bool,dt},{default local},
table_name = dt << Get Name;
If(!bool & !(dt << HasDataView), // no table but you want one
print("making "||table_name||" public");
dt << New Data View;
Return(dt);
, // elif
bool & dt << HasDataView, // you have a table but want it private
print("making "||table_name||" private");
dt_sub = dt << Subset( All rows, Selected columns only( 0 ), "private" );
close(dt, no save);
dt_sub << Set Name(table_name);
return(dt_sub);
, // else just return what's given
print("passthrough");
return(dt);
)
);
dt = privateTable(1, dt); // should make it private
wait(2);
dt = privateTable(1, dt); // should do nothing
wait(2);
dt = privateTable(0, dt); // should do make it visible
wait(2);
dt = privateTable(1, dt); // should do make it private again
Re: 개인 데이터 테이블 켜기 및 끄기RAM을 절약하는 것이 이점입니다.Private 테이블은 보이는 객체를 생성하지 않습니다.이러한 모든 개체는 표시되는 경우 메모리에 매핑되어야 합니다.
Re: 개인 데이터 테이블 켜기 및 끄기개인 테이블을 사용하면 정확히 어떤 이점이 있습니까? 메모리를 절약하시겠습니까?
Re: 개인 데이터 테이블 켜기 및 끄기예! 그것은 확실히 내 레이더에 있습니다. 저는 기능/유틸리티 라이브러리를 보유하고 있으며 많은 것을 보관(및 배포)하고 있으며 사용자 정의 기능 측면으로 전환하는 것은 더 많은 동적 기능을 위한 장기적인 계획 중 하나입니다.
Re: 개인 데이터 테이블 켜기 및 끄기해당 기능이 자주 필요한 경우 Custom 기능을 생성하면 도움이 될 수 있습니다. 사용자 정의 함수, 변환 및 형식 만들기(jmp.com) .이렇게 하면 스크립팅 인덱스에서 직접 사용자 지정 함수를 볼 수도 있습니다.
Re: 개인 데이터 테이블 켜기 및 끄기모두 감사합니다! 나는 이상적이지는 않지만 꽤 잘 작동하는 다음을 수행했습니다. 기본적으로 비공개를 켜고 끄는 함수를 만들고 스크립트 상단에 변수가 있습니다.
seePrivateTables = 1;
unprivatizeTable = Function({bool,tableName},{default local},
If(bool == 1,
tableName << New Data View;
Return(tableName)
,
Return(tableName)
)
);
// ... various code
dt1 = dt << Summary(.... , private);
dt1 = unprivatizeTable(seePrivateTables, dt1);새 테이블을 만들 때 해당 함수를 호출하는 것을 기억하는 한 개인 테이블을 대량으로 켜고 끌 수 있어야 합니다.
Re: 개인 데이터 테이블 켜기 및 끄기보이는 테이블과 보이지 않는 테이블은 JMP에서 추적합니다. 예를 들어 홈 창에서 계속 주시할 수 있습니다. 전용 테이블은 이를 생성하는 코드에 의해서만 추적됩니다. 핸들을 보유하고 있는 JSL 변수를 덮어쓰기 전에 개인용 테이블을 닫는 데 실패하면 테이블은 여전히 메모리에 있지만 연결할 수 없습니다. JMP가 종료되면 종료됩니다. (Window->CloseAllDataTables는 개인 테이블을 찾을 수 없으며 닫지 않습니다.)
또한 JMP는 보이거나 보이지 않는 테이블을 비공개로 전환하는 방법을 제공하지 않는다고 확신합니다. 다음과 같이 핸들이 있는 경우 비공개 테이블을 보이지 않는 테이블로 전환할 수 있습니다.
dtA = Open( "$SAMPLE_DATA/Big Class.jmp", private );
// getting the data box makes it invisible
b = dtA << New Data Box();
// then show window makes it visible
dtA << Show Window;
아쉽게도 invisible 키워드는 ~이다 키워드이며 적어도 open()에는 변수로 전달할 수 없습니다. 하위 집합 등에 대해 확실하지 않습니다. 아마도 최선의 방법은 테이블을 만들거나 여는 각 지점 이후에 위와 같은 작업을 수행하는 사용자 함수에 대한 호출을 추가하는 것입니다.
Re: 개인 데이터 테이블 켜기 및 끄기<< 새 데이터 보기를 사용하여 개인 테이블을 표시할 수 있습니다. 나는 이것이 이 맥락에서 하는 일을 100%는 아니지만 개인 테이블을 볼 수 있게 만들고 디버깅에 사용했습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp", private);
wait(2);
dt << New Data View;
다시 비공개로 만드는 방법을 모르지만 << Show Window(0); 적어도 보이지 않게 만들 것입니다.
Re: 개인 데이터 테이블 켜기 및 끄기메모리의 모든 표시 객체를 즉석에서 빌드해야 하므로 Private을 켜고 끌 수 있다는 사실을 알지 못합니다.그러나 Show Window 메시지를 사용하여 일반 또는 보이지 않는 데이터 테이블을 표시하거나 숨길 수 있습니다.
data table("Daily Blood Pressure")<<SHOW window=""></SHOW>