Wenn ich eine Datentabelle öffne, kann ich die Option privat verwenden, um die Datentabelle auszublenden:
dt = Open( "$SAMPLE_DATA/Big Class.jmp", private );
Die gleiche Funktion ist auch für Tabellenoperationen wie Teilmenge, Verkettung usw. verfügbar:
Data Table( "Big Class" ) << subset(1, Private)
Data Table( "Big Class" ) << Concatenate( Data Table( "Big Class" ), Private);
Für MFI gibt es keine solche Option 
... bisher, aber eine starke Forderung der Community:
Private Option zum Importieren mehrerer Dateien
In meinen Skripten möchte ich beim Debuggen die Datentabellen sehen, also habe ich Folgendes hinzugefügt:
//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 ) );
mit der Idee:
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.
Überraschenderweise,
Data Table( "Big Class" ) << subset(1, private(loadPrivate ) )
funktioniert nicht, die Tabelle wird immer im privaten Modus geöffnet – unabhängig vom aktuellen Wert von loadPrivate . Scheint, dass Tabellenoperationen auf das Vorhandensein von Private reagieren – unabhängig vom Argument.
Probieren Sie einfach die folgenden Befehle aus:
current data table() << subset(1,Private(1));
current data table() << subset(1,Private(0));
current data table() << subset(1,Private("has no effect"));Alle haben den gleichen Effekt – die Teilmenge wird im privaten Modus geöffnet.
Hm.
Gibt es eine Dokumentation zu den Unterschieden zwischen Private und Private?
Gibt es etwas weniger Kompliziertes, das dasselbe tut wie:
Eval(Substitute(Expr(current data table() << Subset( 1,__p__)),Expr(__p__),If(loadPrivate,Expr(Private),1)));
TS-00127556
➥ Tiny-Traps-in-Jmp-und-JSL
Ich denke, ein Durcheinander mit Ausdrücken ist nur eine ziemlich einfache Option, die Sie haben
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 , optionale Argumente, sondern hatten Als Argument (wie eine neue Tabelle) könnte so etwas einfacher sein.