Verknüpfen von JSL-Skripten mit Schaltflächen in der JMP-AnwendungHallo,
Ich erstelle eine JMP-Anwendung zum Einlesen einer Excel-Arbeitsmappe. Für alle Blattdaten in der Arbeitsmappe habe ich JSL zum Generieren eines Diagramms und außerdem habe ich eine JSL zum Laden von XLSX in Datentabellen in JMP.
Ich möchte die JSL-Skripte mit den Application Builder-Elementen wie Schaltflächen verknüpfen. Könnten Sie mir bitte helfen, zu verstehen, wo das JSL-Skript die Schaltflächen-auf-Klick-Funktionalität verwenden soll?
Z.B:

Wenn Sie im obigen Bild auf die Schaltfläche „Datei auswählen“ klicken, wird ein Explorer geöffnet, in dem der Benutzer „xlsx“ auswählen kann. Anschließend wird der Pfad in eine Variable geladen.
Beim Klicken auf die Schaltfläche „Laden“ möchte ich „My JSL“ ausführen, das dem Laden von XLSX in Datentabellen entspricht.
Danke,
Dileep
Betreff: JSL-Skripte mit Schaltflächen in der JMP-Anwendung verknüpfenIch fuhr mit der Implementierung des Add-Ins fort und verwendete $ADDIN_HOME(addin_id), um den erforderlichen Pfad zu erhalten.
Danke für die Auskunft.
Betreff: JSL-Skripte mit Schaltflächen in der JMP-Anwendung verknüpfenWenn Sie Skripte aus anderen externen Dateien einbinden, wird es deutlich schwieriger, Ihre App portierbar zu machen, damit andere sie verwenden können.Es ist möglich, dass sich das Skript in einem Netzwerkordner befindet, auf den jeder Zugriff hat, oder so ähnlich.Wenn Sie ein Add-In erstellen, können Sie das Skript dort bündeln, Sie müssen jedoch wissen, wie Sie einen relativen Pfad zum Add-In-Ordner angeben.
Die einfachste Lösung besteht wahrscheinlich darin, einfach Ihr Excel-Importskript zu kopieren und in den Namensraum der Anwendung einzufügen.Dadurch bleibt alles aufgeräumt und von Ihren Modul-Namensräumen getrennt, es ist aber dennoch für alle Modul-Namensräume zugänglich.Sie müssen OnModuleLoad() nur verwenden, um Dinge von einem Modul zum anderen zu übergeben, wenn Sie eine neue Modulinstanz erstellen.Wenn ein Objekt im Anwendungsnamensraum definiert ist, können Sie das Objekt einfach wie gewohnt in einem der Modulnamensräume aufrufen.Es ist wie ein Super-Namensraum, der alle Modul-Namensräume enthält.
Betreff: JSL-Skripte mit Schaltflächen in der JMP-Anwendung verknüpfenHallo Cameron @cwillden ,
Vielen Dank für die Antwort. Das Word-Dokument zur App-Erstellung war auf jeden Fall hilfreich für das Verständnis des App-Erstellungsprozesses, aber ich habe immer noch Zweifel, ob ich ein eigenständiges JSL-Skript zum Importieren der XLSX-Daten habe und es einen Funktionsaufruf bereitstellt, sagen wir import_xlsx. Gibt es eine Möglichkeit, die Include()-Anweisung im Anwendungs-Builder-Arbeitsbereich zu verwenden? damit ich die Funktion import_xslx über die On-Load-Funktion meines App-Namespace aufrufen kann.
Aus Ihrem Word-Dokument gehe ich davon aus, dass die Initialisierung von Skripten im Anwendungs-Namespace erfolgen kann. Aber in meinem Fall würde ich einen Pfad an die Funktion import_xlsx senden, der erst erhalten wird, nachdem der Benutzer die Datei ausgewählt hat. Daher bin ich etwas verwirrt, wo ich die JSL-Datei einfügen soll.
Betreff: JSL-Skripte mit Schaltflächen in der JMP-Anwendung verknüpfenIm Eigenschaftenbereich sollten Sie die Eigenschaft „Drücken“ sehen.Geben Sie hier den Namen einer Funktion oder eines Ausdrucks ein, den Sie ausführen möchten.Gehen Sie dann auf der Registerkarte „Skripte“ zum Namespace für das Modul, das die Schaltfläche enthält, und definieren Sie die Funktion/den Ausdruck, den Sie in die Press-Eigenschaft für die Schaltfläche eingegeben haben.
Ich habe dieses Tutorial vor einiger Zeit erstellt, um die Grundlagen von Application Builder zu erlernen.Ich empfehle, es durchzugehen, damit Sie ein gutes Gefühl für dieses Tool bekommen.
https://community.jmp.com/t5/Discussions/Gentle-Introduction-to-Application-Builder/mp/49629#M28232