Betreff: Wie man Optionsfelder in einem interaktiven Diagramm codiert und in das Dashboard einfügt@Feli ,
Ich habe DashboardBuilder außer einem einfachen Beispiel nicht verwendet. Ich verwende Application Builder oder schreibe einfach ein Skript, um eine Anwendung zu erstellen.Vielleicht möchten Sie darüber lesen. Manche mögen es wirklich. Andere, die schon eine Weile Skripte schreiben, handhaben die Dinge normalerweise über JSL.
Unten ist ein Screenshot des Starts eines ApplicationBuilder für Ihre Aufgabe.
Ich denke, das Lesen von Kapitel 11 ist ein guter Anfang,
Betreff: Wie man Optionsfelder in einem interaktiven Diagramm codiert und in das Dashboard einfügt@gzmorgan0
Vielen, vielen Dank!
Du hast genau meine Wunschlösung getroffen.
Bei einem meiner vielen früheren Versuche habe ich mit Tabellenvariablen herumgespielt - ich habe die Schieberegler zum Laufen gebracht, aber nicht das Optionsfeld.
Der Schlüssel, der mir fehlte, war:
dt << Set Table Variable("Faktor", Expr(num (cat << Get Selected) ) );Meine Tabellenvariable für Faktor war immer ein String, was die Formel durcheinander gebracht hat, also musste ich andere Wege finden.
Ich habe versucht, mein Diagramm mit Dashboard Builder/Application Builder zu erstellen, da dies von vielen Leuten beim Starten von JSL/Anwendungserstellung empfohlen wurde, aber ich werde Ihre Tipps implementieren und mich weiter mit Containern usw.
Nochmals vielen Dank für Ihre Hilfe!
Betreff: Wie man Optionsfelder in einem interaktiven Diagramm codiert und in das Dashboard einfügt@Feli ,
Es gibt mehrere Elemente in diesem Skript, die Probleme verursachen.
Die erste ist mit Katze, der RadioBox. Das Skript wird an die Gliederungsbox angehängt, nicht an die Radiobox
//Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} ),update ) //wrong, see below
Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} , update ) )
Namen standardmäßig hier(1); gibt an, dass die Variablenwerte nur für dieses Skript gelten.Sie müssen den Here-Namespace nicht adressieren und die Syntax lautet Here:A . Aber das bringt ein anderes Problem mit sich, die Formelspalten G1scale, G2scale usw. haben Formeln wie: G1*A.Sobald das Skript ausgeführt wird oder wenn Sie versuchen, die Tabelle zu einem späteren Zeitpunkt zu öffnen, ist die Variable A unbekannt.Ein paar Vorschläge sind:
- Erstellen Sie die Tabellenvariablen A, B, C, Faktor mit dt << Set Table Variable(A, 1)
- dann wird die Formel zu :G1*:A und die Tabelle erkennt diesen Wert, wenn das Skript nicht ausgeführt wird.
- Wenn Sie Ihr Skript mehr als einmal ausführen, werden mehrere G1scale, G1scale 2 usw. erstellt. Dies kann eleganter erfolgen, indem Sie prüfen, ob die Spalte oder vorhanden ist. Wenn dies der Fall ist, löschen Sie sie oder weisen Sie einfach die Funktion zu. Sobald das Fenster geschlossen ist, können Sie diese Spalten auch mit einer On Close-Funktion für nw löschen.
Der größte Vorschlag ist jedoch, dass Sie lernen sollten, wie Sie JMP-Berichte erstellen, wenn Sie sich mit interaktiver Skripterstellung befassen
Behälter: HListBox , VListBox , LineupBox , PanelBox .Ihr Skript verwendet die OutlineBox Container.
Kontrollen: ButtonBox , SliderBox , Kontrollkästchen , etc.
Eingang: Kombinationsfeld , Listenfeld , ColListBox , etc.
Verlassen Sie sich nicht auf das Kombinieren von Fenstern.
Kapitel 11 im JMP Scripting Guide ist ein guter Ausgangspunkt. Hauptmenü > Hilfe > JMP-Dokumentation > JMP-Skriptleitfaden >> Kapitel 11
Angehängt ist ein Skript mit diesem Layout (Baumstruktur)


So codieren Sie Optionsfelder in einem interaktiven Diagramm und vereinen sie im DashboardHallo zusammen,
Ich möchte ein kleines Dashboard/eine kleine Anwendung schreiben, in der Sie drei Variablen A, B, C mithilfe von Schiebereglern (kontinuierliche Ebenen zulässig) und eine vierte Variable Faktor mithilfe von Optionsfeldern ändern können (da nur 4 Ebenen zulässig sind).

Die Spalten meiner Datentabelle G1, G2, G3 werden dann mit A, B, C sowie Faktor multipliziert und zusammen mit der Summe aller drei neuen Spalten mit dem Graph Builder dargestellt.
Clear Log();
Delete Symbols();
Names Default To Here( 1 );
// default parameter values.
A = 1;
B = 2;
C = 3;
Faktor = 2;
dt = Current Data Table();
dt << New Column( "G1scale", Numeric, Continuous, Formula( (:G1 * Here( 1 ):A) * Here( 1 ):Faktor ) );
dt << New Column( "G2scale", Numeric, Continuous, Formula( (:G2 * Here( 1 ):B) * Here( 1 ):Faktor ) );
dt << New Column( "G3scale", Numeric, Continuous, Formula( (:G1 * Here( 1 ):C) * Here( 1 ):Faktor ) );
dt << New Column( "SumColumn", Numeric, Continuous, Formula( :G1scale + :G2scale + :G3scale ) );
Ich habe mein Skript soweit zum Laufen gebracht, dass das Ziehen eines Schiebereglers die Formelspalten in der Datentabelle aktualisiert, aber ich habe Probleme, dasselbe mit meinen Optionsfeldern zu tun.
update = Expr(
Here( 1 ):A = p;
Here( 1 ):B = r;
Here( 1 ):C = t;
Here( 1 ):Faktor = Choose( nw1["cat"], 1, 2, 3, 4 );
dt << rerun formulas;
Wait( 0 );
);
nw1 = New Window( "Faktor",
Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} ),update )
);
nw2=New Window( "Sliding",
Outline Box( "A",
Slider Box(
1,
10,
p,
update
)
),
Outline Box( "B",
Slider Box(
1,
10,
r,
update
)
),
Outline Box( "C",
Slider Box(
1,
10,
t,
update
)
)
);
g1=Graph Builder(
Size( 529, 456 ),
Show Control Panel( 0 ),
Variables(
X( :WL ),
Y( :G1scale ),
Y( :G2scale, Position( 1 ) ),
Y( :G3scale, Position( 1 ) ),
Y( :SumColumn, Position( 1 ) )
),
Elements( Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Simulated Plot" )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Mygauss" )} )
)
);Ich kann die Datentabelle (und damit das Diagramm) nicht aktualisieren, wenn ich ein Optionsfeld auswähle.
Ein zweites Problem besteht darin, dass ich die drei aktuellen Fenster in einem Fenster (Dashboard oder Anwendung) vereinen möchte. Ich kann sie alle für Combine Windows auswählen, aber wenn ich versuche, sie an Dashboard Builder zu senden, wird nur das Graph Builder-Fenster angezeigt, nicht die Silder. Wie kann ich meine Silber-/Optionsschaltflächen in den Dashboard-/Anwendungs-Builder ziehen?
InhaltsorganisationMassenanpassung