JSL – Kontrollkästchen, um eine Variable auszuwählen, die dann im Graph Builder dargestellt werden sollHallo allerseits,
Ich versuche, ein Skript zu erstellen, das folgendermaßen funktioniert:
1. Öffnet ein neues Fenster mit der Aufschrift „Wählen Sie die Parameter aus, die Sie darstellen möchten“ mit einer Liste von Parametern und jeweils einem Kontrollkästchen. Der Bediener wählt aus, welche Parameter er darstellen möchte, indem er sie ankreuzt.
2. Öffnen Sie dann für diejenigen, die angekreuzt sind, einen Graph Builder mit den entsprechenden Variablen.
Ich bin derzeit in der Lage, den ersten Schritt zu machen (neues Fenster und Liste mit Kontrollkästchen), und ich weiß, wie man ein Skript erstellt, um ein Diagramm zu erstellen, aber mir fehlt die Verbindung zwischen ihnen ...Ich habe ursprünglich darüber nachgedacht, jedes Kontrollkästchen einzeln aufzurufen und dann eine Folge von „Wenn“ auszuführen, etwa „Wenn cb1 angekreuzt ist, dann erstellen Sie das Diagramm, wenn nicht, dann, wenn cb2 angekreuzt ist usw.“ Ich habe versucht, das folgende Skript zu trainieren, aber es zeigt am Ende immer „Fehlgeschlagen“ an, egal ob ich das Kästchen angekreuzt habe, also wird das Kästchen nicht wirklich aktiviert:
Names Default To Here( 1 );
New Window( "Choose the parameters to be plotted",
cb1 = Check Box ("Parameter 1",0),
cb2 = Check Box ("Parameter 2",0)
);
wait(5);
If (cb1 == 1,
Graph Builder(
Variables(
X( :Name( "Process duration" ) ),
Y( :Name( "Parameter 1" ) ) ) ),
New Window( "Failed"));Haben Sie eine Idee, wie das geht?
@martindemel
Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderDas tut mir leid. In der Zwischenzeit habe ich auch Mark ein großes Lob ausgesprochen.Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderEin großes Lob geht an Mark
Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderDanke Martin, für dieses hilfreiche Skript.Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderIch habe diese Lösung gerade getestet und sie hat perfekt funktioniert, danke!!Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderBeispiel:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dialog = Column Dialog(
col = Col List( "X, Factor", Min Col( 1 ), Max Col( 1 ) )
);
If( dialog["Button"] == -1, Throw( "User cancelled" ) );
Remove From( dialog );
Eval List( dialog );
x = col[1];
dt << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Variables( X( x ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderIch bin mir nicht sicher, ob ich es verstehe
Ich sehe den Sinn darin, den Spaltendialog zu verwenden, um den Bediener aufzufordern, die Spalte auszuwählen, weiß aber immer noch nicht, wie ich das mit der automatischen Diagrammerstellung danach verknüpfen soll?Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph Builderok, macht Sinn. Selbst dann könnten Sie den Spaltendialog verwenden, allerdings müssen Sie dann Ihr Skript leicht anpassen, damit der richtige Variablenname verwendet wird. Das Schöne daran ist, dass Sie einen selbst definierten Variablennamen verwenden können, den Sie später in Ihrem Skript verwenden möchten, und die Abhängigkeit von den Tabellenvariablennamen entfernen. Sie können immer noch eine if_else-Struktur erstellen, aber anstelle von :age können Sie Ihren eigenen Namen verwenden, was das Skript allgemeiner und normalerweise dann auch robuster macht.Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderDie von mir verwendete Methode Choose() ist für Radio Box geeignet, für den Eingabefall „Check Box“ jedoch nicht so nützlich – sie ermöglicht nur die Ausführung einer der Anweisungen.
Versuchen Sie etwas wie:
If(cb<<GET></GET>
Beachten Sie, dass CheckBox<
http://www.jmp.com/support/help/en/15.1/#page/jmp/display-functions.shtml#ww2548850
Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderHallo Martin,
Eigentlich habe ich nicht das ganze Bild erwähnt: Ich habe bereits ein Skript, das alle Diagramme einzeln erstellt, sie im Journal speichert und dann den Diagrammersteller schließt. Am Ende dieses Skripts habe ich also ein Tagebuch mit allen meinen Grafiken.
Jetzt möchte ich diesem Diagramm einen ersten Schritt hinzufügen, nämlich die Variablenauswahl. Ich brauche also, dass der Bediener auswählt, was er möchte, und dann sollte für alle ausgewählten Variablen der zweite Scrip-Graph-Builder -> Journal gelten.
Ist das sinnvoll?
Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderVielleicht nicht genau das, was Sie brauchen, aber wenn Sie ein Diagramm für jede der ausgewählten Variablen erstellen möchten, sollten Sie einen Spaltendialog in Betracht ziehen, damit der Bediener die Variablen auswählen kann, die er in X- und Y-Rollen darstellen möchte, und diese dann für sie zeichnen möchte jede ausgewählte Variable:
https://www.jmp.com/support/help/en/15.1/?os=win&source=application#page/jmp/construct-a-column-dialog.shtml#
Names Default to Here(1);
dt = Open("$SAMPLE_DATA/Tablet Production.jmp", Invisible);
cdb = Column Dialog("Add continuous variables you want to plot against Dissolution" ,
colxx = ColList( "X", Min Col( 1 ), Modeling Type( "Continuous" ) ),
);
show(cdb);
Eval List(cdb[1::N Items(cdb)-1]);
Graph Builder(
Size( 526, 454 ),
Show Control Panel( 0 ),
Variables( X( colxx[1] ), Y( :Dissolution )),
Elements( Points( X, Y, Legend( 3 ) ), Line Of Fit( X, Y, Legend( 5 ) ) ),
Column Switcher( colxx[1], colxx )
);
Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderIch habe in Ihrem Beispiel versucht, das Optionsfeld in ein Kontrollkästchen umzuwandeln, aber auch hier wird nur ein einziges Diagramm erstellt, selbst wenn mehrere Felder ausgewählt sind (und tatsächlich funktioniert es nicht für die Höhe und ich habe keine Ahnung, warum) ... Ich glaube, ich vermisse noch etwas in diesem Skript:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
rc = New Window("Choose the parameters to be plotted",
cb = Check box ({"weight", "height", "sex"}),
Button Box("Ok",
Choose(cb<<GET></GET>
Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderIn diesem Fall können Sie das behalten Kontrollkästchen() zeigt an, die Sie ursprünglich verwendet haben. Aus Ihrem Beispiel ist mir nicht klar geworden, wie die Eingaben verwendet werden würden, wenn beide Elemente (oder keines davon) aktiviert würden.RadioBox ist ein nettes Steuerelement, wenn Sie eine und nur eine Antwort wünschen, aber Sie können jede der Eingabemethoden mit jedem Steuerelementsatz verwenden, einschließlich TextEditBox() für String-Eingabe bzw NumberEditBox() zur numerischen Eingabe.
Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderDas scheint vielversprechend, vielen Dank!! In dem, was Sie vorgeschlagen haben, handelt es sich jedoch entweder um das eine oder das andere Kästchen, aber nicht um beides, wohingegen ich gerne so viele Kästchen wie nötig angekreuzt hätte ... Was soll ich an Ihren Skripten ändern?
Betreff: JSL – Kontrollkästchen zum Auswählen einer Variablen zum anschließenden Plotten im Graph BuilderWenn Sie in einem Dialog zur Eingabe auffordern, gibt es zwei gängige Vorgehensweisen:
1. Verwenden Sie einen modalen Dialog, um die Ausführung des Skripts anzuhalten, während Sie auf Eingaben warten:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
// Prompt for the input
rc = New Window("Choose the parameters to be plotted",
<<MODAL></MODAL>// Launch report if Ok was pressed
if (rc["Button"] == 1,
// Ok pressed
Choose (rc["rb"],
Graph Builder(Variables(X(:age), Y(:weight))),
Graph Builder(Variables(X(:age), Y(:height)))
);
,
// Cancel
"Cancel"
)
In Ihrem Skript ist die Variable „cb1“ eine DisplayBox.In diesem Beispiel wandelt die Option <
2. Führen Sie den „Aktion“-Teil des Dialogs als Teil eines Schaltflächenskripts aus:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
// Prompt for the input and create graph
rc = New Window("Choose the parameters to be plotted",
rb = Radio Box({"weight", "height"}),
Button Box("Ok",
Choose(rb<<GET></GET>
Ein modaler Dialog blockiert alle anderen Eingaben in andere Fenster, während der zweite Ansatz es Ihnen ermöglichen würde, weiterhin andere Fenster in JMP gleichzeitig zu verwenden.
Hoffentlich hilft das!
Betreff: JSL – Kontrollkästchen zum Auswählen der Variable, die dann im Diagrammersteller dargestellt werden sollEinfach und effektiv. Schön!