데이터 테이블을 열 때 개인 옵션을 사용하여 데이터 테이블을 숨길 수 있습니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp", private );
하위 집합, 연결 등과 같은 테이블 작업에도 동일한 기능을 사용할 수 있습니다.
Data Table( "Big Class" ) << subset(1, Private)
Data Table( "Big Class" ) << Concatenate( Data Table( "Big Class" ), Private);
MFI의 경우 그러한 옵션이 없습니다 
... 지금까지는 커뮤니티의 강력한 요구가 있었습니다.
여러 파일 가져오기를 위한 비공개 옵션
내 스크립트에서 디버깅하는 동안 데이터 테이블을 보고 싶어서 다음을 추가했습니다.
//developerIsHere = 1
loadPrivate = If( Is Empty( developerIsHere ),1,0); // default: 1; for debugging automatically set to 0
dt = Open( "$SAMPLE_DATA/Big Class.jmp", private(loadPrivate ) );
아이디어로 :
As a developer, I can execute the developerIsHere = 1 behind the //
then the data table is opened with the option private(0) and I can see the data table and debug the code.
놀랍게도,
Data Table( "Big Class" ) << subset(1, private(loadPrivate ) )
"작동"하지 않으면 테이블은 현재 loadPrivate 값과 관계없이 항상 개인 모드로 열립니다. 테이블 작업은 인수와 관계없이 Private 의 존재에 반응하는 것 같습니다.
다음 명령을 시도해 보세요.
current data table() << subset(1,Private(1));
current data table() << subset(1,Private(0));
current data table() << subset(1,Private("has no effect"));모두 동일한 효과를 갖습니다. 하위 세트는 비공개 모드에서 열립니다.
흠.
비공개와 비공개의 차이점에 대한 문서가 있나요?
다음과 같은 덜 복잡한 것이 있습니까?
Eval(Substitute(Expr(current data table() << Subset( 1,__p__)),Expr(__p__),If(loadPrivate,Expr(Private),1)));
TS-00127556
➥ Jmp 및 JSL의 작은 함정
내 생각에 표현을 엉망으로 만드는 것은 아주 간단한 선택일 뿐이라고 생각합니다
Names Default To Here(1);
DEBUG = 1;
If(IsEmpty(DEBUG),
TABLE_VISIBILITY = "Visible";
, DEBUG == 1,
TABLE_VISIBILITY = "Private";
, // else
TABLE_VISIBILITY = "Visible";
);
dt = Eval(EvalExpr(Open("$SAMPLE_DATA/Big Class.jmp", Expr(TABLE_VISIBILITY))));
dt_subset = Eval(EvalExpr(dt << Subset(dt, Expr(TABLE_VISIBILITY))));
dt_new = New Table("MyTable", Visibility(TABLE_VISIBILITY));
Show(dt, dt_subset, dt_new);
Maybe if all the messages/functions related to table creation didn't just use , 선택적 인수가 있었지만 오히려 (새 테이블과 같은) 인수로서 이와 같은 것이 더 쉬울 수 있습니다.