Wie füge ich dem Skriptbereich einer Datentabelle ein dynamisch erstelltes Dashboard hinzu?Hallo zusammen,
Ich habe ein JSL-Skript, mit dem der Benutzer eine oder mehrere Datendateien auswählen kann und diese Dateien dann zu einer Datentabelle zusammenfügt. Das Skript erstellt dann ein Dashboard für die Datentabelle.
Um das JSL für das Dashboard zu generieren, habe ich zunächst manuell ein Dashboard erstellt (Datei -> Neu -> Neues Dashboard) und ihm im Dashboard Builder manuell erstellte Diagramme hinzugefügt. Anschließend habe ich den Dashboard-Code aus dem Dashboard Builder kopiert (roter Pfeil -> Skript speichern -> In Skriptfenster) und am Ende meines JSL-Skripts eingefügt.
Das funktioniert alles großartig – mein Ziel ist es jedoch, das generierte Dashboard im Skriptfenster der Datentabelle zu speichern, so wie die Auswahl von „Roter Pfeil“ -> „Skript speichern“ -> „In Datentabelle“ im Dashboard Builder ein Dashboard in der Datentabelle speichert. Ich möchte auch nicht , dass das Dashboard automatisch angezeigt wird (der Benutzer sollte im Skriptfenster darauf klicken, wenn er es sehen möchte).
Ich habe versucht, das JSL-Referenz-PDF und die Community-Diskussionen zu durchsuchen, aber nicht gefunden, was ich brauche. Kann mir jemand den richtigen Weg weisen? Es ist bereinigter Code beigefügt, der die Generierung der Datentabelle auslässt.
Danke!
Andy
Automatisierung und SkriptingMac OSWindowsBetreff: Wie füge ich dem Skriptbereich einer Datentabelle ein dynamisch erstelltes Dashboard hinzu?Ich verwende keinen Anwendungs-Builder und würde das Skript anders erstellen. Aber vielleicht hat @DonMcCormack einige Ideen? Dies könnte einige Ideen enthalten, was Sie tun könnten . Warum verwenden Sie den App Builder noch nicht? – (2023-US-30MP-1401) (zum selben Thema Scripters Club 2024: Sitzung 1 – Anwendungs-Builder )
Betreff: Wie füge ich dem Skriptbereich einer Datentabelle ein dynamisch erstelltes Dashboard hinzu?Sie können Folgendes versuchen:
dashboardExpr = Expr(
/* Code for JMP App goes here */
);
Eval(Substitute(
Expr(Current Data Table() << New Script("Dashboard",dbExpr)),
Expr(dbExpr),Name Expr(dashboardExpr)
));
Ändern Sie Current Data Table() in die Referenztabelle, zu der Sie das Dashboard hinzufügen. Möglicherweise müssen andere Variablen initialisiert werden, bevor das Dashboard ausgeführt wird. Der Variablentitel in Zeile 17 verursachte Probleme, ebenso wie der nicht vorhandene Blob um Zeile 24 (obwohl ich verstehen kann, warum dieser nicht aufgenommen wurde, wenn Sie ihn weggelassen haben).
Betreff: Wie füge ich dem Skriptbereich einer Datentabelle ein dynamisch erstelltes Dashboard hinzu?Danke, Don! Das funktioniert perfekt (und Sie haben Recht mit „Titel“ und dem Blob).
Betreff: Wie füge ich dem Skriptbereich einer Datentabelle ein dynamisch erstelltes Dashboard hinzu?@DonMcCormack
Hallo Don,
Ich verwende jetzt Ihre Lösung.
Aber wissen Sie, warum eine Lösung mit Eval und Expr nicht möglich ist?
Ich dachte, ich hätte gerade angefangen, Eval und Eval Expr zu verstehen, aber mit „New Script“ hat es nicht funktioniert.
Betreff: Wie füge ich dem Skriptbereich einer Datentabelle ein dynamisch erstelltes Dashboard hinzu?Wie hast du es benutzt?
Bearbeiten:
Hoffentlich gibt dies einige Ideen (ich würde annehmen, dass es mit Dashboard-Ausdrücken ähnlich funktionieren würde)
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
dt << Delete Scripts(dt << Get Table Script Names);
gb_expr = Expr(Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
));
Eval(Substitute(
Expr(dt << New Script("GB1", myexpr)),
Expr(myexpr), Name Expr(gb_expr)
));
Eval(EvalExpr(
dt << New Script("GB2", Expr(Name Expr(gb_expr)));
));