Quando apro una tabella dati, posso utilizzare l'opzione private per nascondere la tabella dati:
dt = Open( "$SAMPLE_DATA/Big Class.jmp", private );
La stessa funzionalità è disponibile anche per operazioni sulle tabelle come Sottoinsieme, Concatena e così via:
Data Table( "Big Class" ) << subset(1, Private)
Data Table( "Big Class" ) << Concatenate( Data Table( "Big Class" ), Private);
Per le IFM non esiste tale opzione 
...finora, ma una forte richiesta da parte della comunità:
Opzione privata per importare più file
Nei miei script, durante il debug, mi piace vedere le tabelle dei dati, quindi ho aggiunto:
//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 ) );
con l'idea:
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.
sorprendentemente,
Data Table( "Big Class" ) << subset(1, private(loadPrivate ) )
non "funziona", la tabella viene sempre aperta in modalità privata, indipendentemente dal valore corrente di loadPrivate . Sembra che le operazioni sulla tabella reagiscano alla presenza di Private , indipendentemente dall'argomento.
Prova semplicemente i seguenti comandi:
current data table() << subset(1,Private(1));
current data table() << subset(1,Private(0));
current data table() << subset(1,Private("has no effect"));Hanno tutti lo stesso effetto: il sottoinsieme viene aperto in modalità Privata.
Uhm.
Esiste qualche documentazione sulle differenze tra Privato e Privato?
C'è qualcosa di meno complicato che fa lo stesso di:
Eval(Substitute(Expr(current data table() << Subset( 1,__p__)),Expr(__p__),If(loadPrivate,Expr(Private),1)));
TS-00127556
➥ Piccole trappole in Jmp e JSL
Penso che un pasticcio con le espressioni sia solo un'opzione abbastanza semplice che hai
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 , argomenti facoltativi ma piuttosto aveva come argomento (come una nuova tabella) qualcosa di simile potrebbe essere più semplice.