Activer et désactiver les tables de données privéesPour garder bon nombre de mes scripts propres, j'utilise beaucoup "privé". Cependant, si je dépanne un script, le fait d'avoir des tables privées me gêne et je dois commenter et, espérons-le, me rappeler de décommenter lorsque j'apporte des modifications pour voir si les modifications fonctionnent.
Existe-t-il un moyen, ou JMP dispose-t-il déjà d'un moyen global d'activer ou de désactiver les tables privées ? Dans ma tête, je pourrais prendre le temps de faire des doublons de mon code avec et sans le privé et de le lier à une variable de test, mais cela ne semble pas être la meilleure réponse.
Je ne savais pas s'il y avait des idées là-bas sur la façon de le faire. Merci!
ScriptRe : Activer et désactiver les tables de données privéesJe ne suis pas au courant de pouvoir activer et désactiver Private, car cela nécessiterait la construction à la volée de tous les objets d'affichage en mémoire.Cependant, vous pouvez utiliser le message Afficher la fenêtre pour afficher/masquer les tables de données normales ou invisibles.
data table("Daily Blood Pressure")<<SHOW window=""></SHOW>Re : Activer et désactiver les tables de données privéesVous pourrez peut-être rendre la table privée visible en utilisant << Nouvelle vue de données. Je ne sais pas à 100 % ce que cela fait dans ce contexte, mais cela semble rendre les tables privées visibles et je l'ai utilisé pour le débogage :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp", private);
wait(2);
dt << New Data View;
aucune idée de comment le rendre à nouveau privé, mais << Show Window(0); le rendra au moins invisible.
Re : Activer et désactiver les tables de données privéesLes tableaux visibles et invisibles sont suivis par JMP. Vous pouvez les surveiller dans la fenêtre d'accueil, par exemple. Les tables privées ne sont suivies que par le code qui les crée. Si vous ne parvenez pas à fermer une table privée avant d'écraser la variable JSL contenant son handle, la table est toujours en mémoire mais inaccessible. Il sera fermé à la fin de JMP. (Window->CloseAllDataTables ne trouve pas les tables privées et ne les ferme pas.)
Je suis également à peu près sûr que JMP n'expose pas un moyen de rendre une table visible ou invisible privée. Vous pouvez transformer une table privée en une table invisible, si vous avez la poignée, comme ceci :
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;
Malheureusement, le mot clé invisible est un mot-clé et ne peut pas être passé en tant que variable, du moins à open(). Pas sûr du sous-ensemble, etc. Le mieux que vous puissiez faire est probablement d'ajouter un appel à une fonction utilisateur qui fait quelque chose comme ci-dessus après chaque point où vous créez ou ouvrez une table.
Re : Activer et désactiver les tables de données privéesMerci tout le monde! J'ai fini par faire ce qui suit qui, bien que pas idéal, devrait plutôt bien fonctionner. J'ai créé une fonction et j'ai une variable en haut de mon script pour activer/désactiver le privé
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);Tant que je me souviens d'appeler cette fonction lorsque je crée de nouvelles tables, je devrais pouvoir activer et désactiver les tables privées en masse.
Re : Activer et désactiver les tables de données privéesSi vous avez souvent besoin de cette fonction, vous pourriez bénéficier de la création d'une fonction personnalisée Créer des fonctions, des transformations et des formats personnalisés (jmp.com) .De cette façon, vous pouvez également voir la fonction personnalisée directement à partir de l'index de script.