Lorsque j'ouvre une table de données, je peux utiliser l'option private pour masquer la table de données :
dt = Open( "$SAMPLE_DATA/Big Class.jmp", private );
La même fonctionnalité est également disponible pour les opérations sur les tables telles que Subset, Concatenate, etc. :
Data Table( "Big Class" ) << subset(1, Private)
Data Table( "Big Class" ) << Concatenate( Data Table( "Big Class" ), Private);
Pour MFI, cette option n’existe pas 
... jusqu'à présent, mais une demande forte de la communauté :
Option privée pour importer plusieurs fichiers
Dans mes scripts, lors du débogage, j'aime voir les tableaux de données, j'ai donc ajouté :
//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 ) );
avec l'idée :
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.
Étonnamment,
Data Table( "Big Class" ) << subset(1, private(loadPrivate ) )
ne "fonctionne pas", la table est toujours ouverte en mode privé - indépendamment de la valeur actuelle de loadPrivate . Il semble que les opérations de table réagissent à la présence de Private - indépendamment de l'argument.
Essayez simplement les commandes suivantes :
current data table() << subset(1,Private(1));
current data table() << subset(1,Private(0));
current data table() << subset(1,Private("has no effect"));Tous ont le même effet : le sous-ensemble est ouvert en mode Privé.
Hum.
Existe-t-il de la documentation sur les différences entre Private et Private ?
Existe-t-il quelque chose de moins compliqué qui fasse la même chose que :
Eval(Substitute(Expr(current data table() << Subset( 1,__p__)),Expr(__p__),If(loadPrivate,Expr(Private),1)));
TS-00127556
➥ Petits-pièges-en-Jmp-et-JSL
Je pense qu'un désordre avec les expressions n'est qu'une option assez simple dont vous disposez
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 , arguments facultatifs mais avaient plutôt comme argument (comme une nouvelle table), quelque chose comme ça pourrait être plus facile.