So implementieren Sie „Speichern Ihrer Arbeit in einem JMP-Journal“ mit JSLBasierend auf den unten aufgeführten Informationen ist es möglich, mit der Methode „Alle Dateien öffnen“ Links zu einem JMP-Journal zu erstellen.
https://community.jmp.com/t5/Statistical-Thinking-for/Saving-Your-Work-in-a-JMP-Journal/ta-p/271841
Ich möchte eine Funktion in der GUI implementieren, bei der man per Klick auf eine Schaltfläche einen Journal-Link erstellen kann, ähnlich der Methode, die im referenzierten Video gezeigt wird (ohne die gesamte GUI-Oberfläche auf das Journal zu übertragen, sondern nur einen Link zu erstellen). Die JSL zum Erstellen eines Journal-Links erlaubt nur das Verbinden von Datentabellen. Wie kann ich einen Link für alle Diagramme im neuen Fenster erstellen? Ich bin für jede Hilfe in dieser Angelegenheit dankbar.
Wie kann ich beispielsweise folgendes neue Fenster in ein JMP Journal übertragen und in Form eines Links darstellen?
//
Die Namen werden standardmäßig hier verwendet (1);
dt = Öffnen( "$SAMPLE_DATA/Big Class.jmp" );
nw2= New Window( "Neues Fenster",
Bivariate(y(:Gewicht), x(:Höhe));
);
nw2 << ByGroup-Skript im Journal speichern;
Erweiterte statistische ModellierungAutomatisierung und SkriptingGrundlegende Datenanalyse und ModellierungDatenzugriffBetreff: So implementieren Sie „Speichern Ihrer Arbeit in einem JMP-Journal“ mit JSLIch bin nicht ganz sicher, was Sie wollen, aber könnte es das sein
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: Bitte verwenden Sie beim Eingeben von JSL das JSL-Symbol oben im Vorschaufenster. Es erleichtert das Lesen und Verstehen Ihres Codes.
Betreff: So implementieren Sie „Speichern Ihrer Arbeit in einem JMP-Journal“ mit JSL
Das ist genau das Ergebnis, das ich wollte.
Gibt es neben der Methode „Alle geöffneten Dateien hinzufügen“ außerdem eine Möglichkeit, nur eine bestimmte geöffnete Datei mit „angegebenem Namen“ hinzuzufügen? Fügen Sie beispielsweise nur den Link „Neues Fenster“ zur Journalliste hinzu.
Betreff: So implementieren Sie „Speichern Ihrer Arbeit in einem JMP-Journal“ mit JSLIch hätte Sie in meiner ersten Antwort auf Ihre Frage auf den Scripting Index (unter „Hilfe“) verweisen sollen. Der Scripting Index zeigt Ihnen die Nachrichten, die an Objekte weitergegeben werden können, wie z. B. die Nachricht „Alle geöffneten Dateien hinzufügen“. In meiner ersten Antwort werden Sie feststellen, dass die Nachricht an eine OutlineBox() gesendet wird, auf die durch die Variable „ob“ verwiesen wird. Wenn Sie im Scripting Guide nachsehen und OutlineBox auswählen, werden Ihnen alle Nachrichten angezeigt, die Sie angeben können, um Elemente hinzuzufügen.

Betreff: So implementieren Sie „Speichern Ihrer Arbeit in einem JMP-Journal“ mit JSLIch glaube, ich habe das Problem nicht klar erklärt. Ich möchte fragen, ob „Alle geöffneten Dateien hinzufügen“ automatisch alle aktuell geöffneten JMP-Dateien als verknüpfte Objekte sendet. Ich möchte jedoch, dass der Benutzer nur die gewünschten Dateien aus diesen geöffneten Fenstern auswählen kann, anstatt sie alle hinzuzufügen, und dass er nicht „Dateiverweis hinzufügen“ verwendet, um gespeicherte Dateien hinzuzufügen. Wie im folgenden Bild gezeigt, möchte ich, dass der Benutzer die „geöffnete Datei“ auswählen kann, die er hinzufügen möchte.

Betreff: So implementieren Sie „Speichern Ihrer Arbeit in einem JMP-Journal“ mit JSLMeine vorherige Antwort war anscheinend nicht sehr klar. Mein Hinweis auf den Scripting-Index und die verschiedenen Nachrichten, die an eine Outline-Box übergeben werden können, soll Sie auf eine gute Quelle verweisen, um herauszufinden, wie Sie das JSL schreiben müssen, um Ihre spezifischen Anforderungen zu erfüllen.
Betreff: So implementieren Sie „Speichern Ihrer Arbeit in einem JMP-Journal“ mit JSLVielen Dank für Ihre Antwort. Ich verstehe, was Sie meinen. Sie sagen, dass ich die Elemente, die ich speichern möchte, zur Aufzeichnung an die Outline-Box senden muss. Allerdings weiß ich derzeit nur, dass man mit „ob << alle geöffneten Dateien hinzufügen“ alle geöffneten Dateien auf einmal senden kann. Ich weiß nicht, wie ich eine bestimmte geöffnete Datei an die Outline-Box senden kann. Können Sie mir ein paar Tipps geben?
Außerdem habe ich noch eine weitere Frage. Wenn ich „ob << alle geöffneten Dateien hinzufügen“ verwende und der Link im Journal erscheint, ist mir aufgefallen, dass die Funktionalität der Schaltflächen scheinbar verschwindet. In der unten gezeigten JSL gab es beispielsweise zunächst eine Schaltfläche, die aber nach dem Klicken auf den Link im Journal scheinbar fehlt. Wie kann ich dafür sorgen, dass die Funktionalität der Schaltfläche weiterhin erhalten bleibt?
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;Betreff: So implementieren Sie „Speichern Ihrer Arbeit in einem JMP-Journal“ mit JSLDas JSL aus Ihrer letzten Antwort erstellt ein Fensterobjekt-Anzeigefeld mit einer Variable namens „nw2“, die verwendet wird, um auf dieses Anzeigefeld zu verweisen. Die Standardaktion eines Fensterobjekts besteht darin, ein neues Anzeigefenster zu erstellen
nw2 = New Window( "New window",
Innerhalb des Fensterobjekts befindet sich ein Schaltflächenfeld-Anzeigefeld mit dem Namen „Test“ und ein Skript „Print(„test“)“ mit einer Variablen namens „OutputGButton“, die zum Verweisen auf das Schaltflächenfeld verwendet wird.
outputGButton = Button Box( "Test", print("test");
)
Das nächste Objekt innerhalb des Fensterobjekts ist die JSL zum Ausführen einer bivariaten Plattform mit einer Variable namens „biv“, die zum Verweisen auf das bivariate Plattformobjekt verwendet wird. Die Standardaktion der bivariaten Plattform besteht darin, eine bivariate Analyse auszuführen und die Ausgabe entweder in einem neuen Fenster anzuzeigen oder in diesem Fall die Ausgabe innerhalb des Fensterobjekts nw2 anzuzeigen. 2 Elemente werden an die bivariate Plattform übergeben. Das Spaltengewicht wird an das Y-Element und die Spaltenhöhe an das X-Element übergeben.
biv = Bivariate( y( :weight ), x( :height ) )
An dieser Stelle im JSL wird die Definition des nw2-Fensterobjekts durch ein schließendes ")" abgeschlossen.
Ich gehe so ins Detail, um zu veranschaulichen, wie die nächsten Zeilen im Skript mit dem NW2-Fensterobjekt oder mit einem der Objekte innerhalb des NW2-Fensterobjekts interagieren.
Jedes der definierten Objekte verfügt über Nachrichten, die an sie übermittelt werden können. Verschiedene Objekttypen verfügen über eine unterschiedliche Liste von Nachrichten, die an sie übermittelt werden können. Das Fensterobjekt nw2 verfügt über Nachrichten wie „Fenstertitel festlegen“, „Fenster in den Vordergrund bringen“, „Fenster schließen“ usw. Die vollständige Liste der Nachrichten, die an ein Fensterobjekt gesendet werden können, finden Sie im Scripting-Index.

im aktuellen Skript
nw2 << Save ByGroup Script to Journal;
Die Nachricht „ByGroup-Skript im Journal speichern“ wird an das nw2-Fensterobjekt weitergeleitet. Diese Nachricht ist jedoch nicht für ein Fensterobjekt verfügbar.
„ByGroup-Skript im Journal speichern“ ist eine Nachricht, die für JMP-Plattformen verfügbar ist.
Das einzige Objekt im Skript, an das diese Nachricht übergeben werden kann, ist die Bivariate-Plattform, auf die durch die Variable biv verwiesen wird.
biv << Save ByGroup Script to Journal;
Bei dieser Verwendung enthält das an das Journal übergebene Skript jedoch nur das JSL zum Ausführen der Bivariate-Funktion und nicht das Skript zum Ausführen des vollständigen JSL, das das Fensterobjekt mit seiner Schaltflächenbox und der Bivariate-Plattform erstellt.
Sie müssen also das JSL schreiben, das in ein Journal ein Schaltflächenfeld einfügt, das das gesamte JSL enthält, das derzeit in der Definition des NW2-Fensterobjekts enthalten ist.
Das Save ByGroup-Skript im Journal erstellt im Wesentlichen ein Schaltflächenfeld mit einem angegebenen Skript. Wenn die Schaltflächenbox etwas anderes enthalten soll als die angegebene Funktionalität, muss der Benutzer den Code schreiben, um die Änderungen vorzunehmen. Unten finden Sie ein Skript, das dasselbe tut wie Save ByGroup..., aber das angegebene Schaltflächenfeld vor der Ausgabe des Bivariate-Skripts hinzufügt.
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>Es verwendet auch die Menu(1)-Erweiterung für die Funktion Alle geöffneten Dateien hinzufügen, um dem Benutzer die Auswahl der hinzuzufügenden Dateien zu ermöglichen</P>Betreff: So implementieren Sie „Speichern Ihrer Arbeit in einem JMP-Journal“ mit JSLEs ist hier weniger offensichtlich als in vielen Fällen, aber wie Jim andeutete, bietet der Scripting Index die Lösung. << „Alle geöffneten Dateien hinzufügen“ verfügt über ein optionales Argument, mit dem Sie in der Gliederungsbox die Dateien auswählen können, auf die Sie verlinken möchten.

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