Comment implémenter « Enregistrer votre travail dans un journal JMP » à l'aide de JSLSur la base des informations partagées ci-dessous, il est possible de créer des liens vers un journal JMP en utilisant la méthode « ouvrir tous les fichiers ».
https://community.jmp.com/t5/Statistical-Thinking-for/Saving-Your-Work-in-a-JMP-Journal/ta-p/271841
Je voudrais implémenter une fonctionnalité dans l'interface graphique où un bouton peut être cliqué pour créer un lien de journal similaire à la méthode présentée dans la vidéo référencée (sans transférer l'intégralité de l'interface graphique vers le journal, mais uniquement en créant un lien). Le JSL pour créer un lien de journal permet uniquement de connecter des tables de données. Comment puis-je créer un lien pour tous les graphiques de la nouvelle fenêtre ? J'apprécie toute aide à ce sujet.
Par exemple, comment puis-je transférer la nouvelle fenêtre suivante vers un journal JMP et la présenter sous la forme d'un lien ?
//
Les noms par défaut sont ici (1);
dt = Ouvrir( "$SAMPLE_DATA/Big Class.jmp" );
nw2= Nouvelle fenêtre( "Nouvelle fenêtre",
Bivarié( y( :poids ), x( :hauteur ) );
);
nw2 << Enregistrer le script ByGroup dans le journal ;
Modélisation statistique avancéeAutomatisation et scriptsAnalyse et modélisation de données de baseAccès aux donnéesRé: Comment implémenter « Enregistrer votre travail dans un journal JMP » à l'aide de JSLJe ne sais pas exactement ce que tu veux, mais c'est peut-être ça
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw2 = New Window( "New window",
biv = Bivariate( y( :weight ), x( :height ) )
);
biv << Save ByGroup Script to Journal;
Current Journal() << append( ob = Outline Box( "All Files" ) );
ob << Add All Open Files;
PS Veuillez utiliser l'icône JSL en haut de la fenêtre d'aperçu lorsque vous saisissez du JSL. Cela facilite la lecture et la compréhension de votre code.
Ré: Comment implémenter « Enregistrer votre travail dans un journal JMP » à l'aide de JSL
C'est exactement le résultat que je souhaitais.
De plus, outre la méthode « ajouter tous les fichiers ouverts », existe-t-il un moyen d'ajouter uniquement un fichier ouvert spécifique « nom spécifié » ? Par exemple, ajoutez uniquement le lien « Nouvelle fenêtre » dans la liste des journaux.
Ré: Comment implémenter « Enregistrer votre travail dans un journal JMP » à l'aide de JSLJ'aurais dû vous indiquer l'index de script (sous le menu déroulant Aide) dans ma première réponse à votre question. L'index de script vous montrera les messages qui peuvent être transmis aux objets, tels que le message Ajouter tous les fichiers ouverts. Dans ma première réponse, vous remarquerez que le message est envoyé à une OutlineBox() référencée par la variable « ob ». Si vous regardez dans le Guide de script et sélectionnez OutlineBox, vous verrez tous les messages que vous pouvez spécifier pour y ajouter des éléments.

Ré: Comment implémenter « Enregistrer votre travail dans un journal JMP » à l'aide de JSLJe pense que je n'ai pas expliqué clairement le problème. Ce que je veux demander, c'est si « ajouter tous les fichiers ouverts » envoie automatiquement tous les fichiers JMP actuellement ouverts en tant qu'objets liés. Cependant, ce que je veux, c'est que l'utilisateur puisse sélectionner uniquement les fichiers souhaités dans ces fenêtres ouvertes, plutôt que de les ajouter tous, et de ne pas utiliser « Ajouter une référence de fichier » pour ajouter des fichiers enregistrés. Comme le montre l'image suivante, je veux que l'utilisateur puisse sélectionner le « fichier ouvert » qu'il souhaite ajouter.

Ré: Comment implémenter « Enregistrer votre travail dans un journal JMP » à l'aide de JSLMa réponse précédente n'était apparemment pas très claire. Le fait que je pointe yo9 vers l'index de script et les différents messages qui peuvent être transmis à une boîte de contour a pour but de vous orienter vers une bonne source pour comprendre comment écrire le JSL pour résoudre les exigences spécifiques que vous avez.
Ré: Comment implémenter « Enregistrer votre travail dans un journal JMP » à l'aide de JSLMerci pour votre réponse. Je comprends ce que vous voulez dire. Vous dites que je dois envoyer les éléments que je souhaite sauvegarder dans la zone de contour pour les enregistrer. Cependant, je sais actuellement seulement que "ob << ajouter tous les fichiers ouverts" peut être utilisé pour envoyer tous les fichiers ouverts à la fois. Je ne sais pas comment envoyer un fichier ouvert spécifique dans la zone de contour. Pouvez-vous me donner quelques conseils ?
J'ai également une question supplémentaire. Lorsque j'utilise « ob << ajouter tous les fichiers ouverts » et que le lien apparaît dans le Journal, j'ai remarqué que la fonctionnalité des boutons semble disparaître. Par exemple, dans le JSL illustré ci-dessous, il y avait initialement un bouton, mais il semble disparaître après avoir cliqué sur le lien dans le Journal. Comment puis-je faire en sorte que la fonctionnalité du bouton continue d'exister ?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw2 = New Window( "New window",
outputGButton = Button Box( "Test", print("test");
),
biv = Bivariate( y( :weight ), x( :height ) )
);
nw2 << Save ByGroup Script to Journal;
Current Journal() << append( ob = Outline Box( "All Files" ) );
ob << Add All Open Files;Ré: Comment implémenter « Enregistrer votre travail dans un journal JMP » à l'aide de JSLLe JSL de votre dernière réponse crée une zone d'affichage d'objet Window avec une variable nommée « nw2 » qui permet de référencer cette zone d'affichage. L'action par défaut d'un objet Window est de créer une nouvelle fenêtre d'affichage
nw2 = New Window( "New window",
À l'intérieur de l'objet Fenêtre, une boîte d'affichage de boîte à boutons avec le nom « Test » et un script, « Print("test") ». avec une variable nommée « OutputGButton » qui est utilisée pour référencer la boîte à boutons.
outputGButton = Button Box( "Test", print("test");
)
L'objet suivant dans l'objet Window est le JSL pour exécuter une plate-forme bivariée, avec une variable nommée « biv » qui est utilisée pour référencer l'objet de la plate-forme bivariée. L'action par défaut de la plate-forme bivariée consiste à exécuter une analyse bivariée et à afficher la sortie dans une nouvelle fenêtre ou, dans ce cas, à afficher la sortie dans l'objet de fenêtre nw2. 2 éléments sont transmis à la plate-forme bivariée. Le poids de la colonne est transmis à l'élément Y et la hauteur de la colonne est transmise à l'élément X
biv = Bivariate( y( :weight ), x( :height ) )
À ce stade du JSL, la définition de l'objet fenêtre nw2 est complétée par un ")" fermant
J'entre dans ce niveau de détail afin d'illustrer comment les lignes suivantes du script interagissent avec l'objet fenêtre nw2 ou avec l'un des objets de l'objet fenêtre nw2.
Chacun des objets définis possède des messages qui peuvent lui être transmis. Différents types d'objets ont une liste différente de messages qui peuvent leur être transmis. L'objet fenêtre nw2 possède des messages tels que « Définir le titre de la fenêtre », « Mettre la fenêtre au premier plan », « Fermer la fenêtre », etc. La liste complète des messages qui peuvent être envoyés à un objet fenêtre est répertoriée dans l'index des scripts

dans le script actuel
nw2 << Save ByGroup Script to Journal;
le message « Enregistrer le script ByGroup dans le journal » est transmis à l'objet fenêtre nw2. Cependant, ce message n'est pas disponible pour un objet fenêtre.
Enregistrer le script ByGroup dans le journal est un message disponible pour les plates-formes JMP.
Le seul objet du script auquel ce message peut être transmis est la plate-forme bivariée référencée par la variable biv
biv << Save ByGroup Script to Journal;
Cependant, lorsque c'est ainsi que cela est utilisé, le script qui est passé au journal contient uniquement le JSL pour exécuter le Bivariate, pas le script pour exécuter le JSL complet qui crée l'objet fenêtre avec sa boîte à boutons et sa plate-forme Bivariate.
Il faudra donc écrire le JSL qui place dans un journal une boîte de boutons contenant tout le JSL qui se trouve actuellement dans la définition de l'objet fenêtre nw2.
En gros, le script Save ByGroup dans le journal crée une boîte à boutons avec un script spécifié. Si l'exigence est d'avoir quelque chose de différent dans la boîte à boutons par rapport à la fonctionnalité donnée, il appartient alors à l'utilisateur d'écrire le code pour effectuer les modifications. Vous trouverez ci-dessous un script qui fait la même chose que Save ByGrooup... mais ajoute la boîte à boutons spécifiée avant la sortie du Bivariate
Names Default To Here( 1 );
//dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
file = pick file();
dt = open(file);
biv = dt << Bivariate( y( :weight ), x( :height ), invisible );
theScript = Char( biv << get script );
biv << close window;
Eval(
Parse(
"New Window( \!"My Journal\!",
<<JOURNAL></JOURNAL>
<P>Il utilise également l'ajout Menu(1) à Ajouter tous les fichiers ouverts, pour permettre à l'utilisateur de choisir les fichiers à ajouter</P>Ré: Comment implémenter « Enregistrer votre travail dans un journal JMP » à l'aide de JSLC'est moins évident ici que dans de nombreux cas, mais, comme Jim le faisait allusion, l'index de script donne la solution. << Ajouter tous les fichiers ouverts a un argument facultatif qui vous permettra de choisir les fichiers auxquels vous souhaitez créer un lien dans la zone de contour.

ob << Add All Open Files( Menu( 1 ) );
