For-Schleife im neuen FensterHallo! Ich bin ein JMP-Anfänger und habe Probleme damit, meine for-Schleife zum Laufen zu bringen.Ich versuche den Benutzer zu fragen, um welche Art von Faktor es sich bei den einzelnen Faktoren handelt. Wie oft die Frage gestellt wird, hängt von der Anzahl der Spalten in der JMP-Datei ab. Ich habe versucht, eine Radiobox zu verwenden, habe aber Probleme mit dem Anhängen. Unten finden Sie eine kleine Momentaufnahme dessen, was ich getan habe. Danke!
Names Default to Here(1);
dt = Open("Example1.jmp");
number = ncols(dt);
FactorType = {"Continuous", "Categorical"};
New Window("Data Entry", << Modal, << return results,
Text Box("Type of Factor");,
type= V list Box(),
);
For(i= 1, i <= number, i++,
type << Append(Radio Box(FactorType, Max Selected(1)));
);
Betreff: For-Schleife in neuem FensterDas ist eine berechtigte Frage, @David_Burnham ! Ich denke, vielleicht kommt es darauf an? Ich verwende IfBox() ziemlich oft, obwohl es speziell für die bedingte Anzeige von Anzeigefeldern gedacht ist. Ich kann in diesen Situationen nicht über die „Legitimität“ von jsl sprechen, aber wie dem auch sei, OnOpen ist ein großartiger Vorschlag.Betreff: For-Schleife in neuem FensterIst das Einfügen einer for-Schleife in einen neuen Fensterfunktionsaufruf wirklich legitim?Meiner Meinung nach sollten Sie JSL nicht an Stellen anbringen, an denen Anzeigefelder erwartet werden, selbst wenn der Code ausgeführt wird.Für ein modales Fenster kann die JSL im OnOpen-Ereignishandler platziert werden.
Betreff: For-Schleife in neuem FensterHallo nochmal @dg1 ,
Als Ergänzung habe ich mir Ihren Code etwas genauer angesehen und festgestellt, dass es ein paar Stellen gibt, an denen Sie meiner Meinung nach auf ein Problem stoßen werden. Das Größte ist das Entladen der Ergebnisse. Jedes Ihrer RadioBox()-Objekte sollte über ein Handle verfügen, damit Sie später darauf verweisen können, um die Daten abzurufen. Im Folgenden finden Sie eine Möglichkeit, dies zu tun: Sie weist die Referenz einer Liste zu und geht dann später durch diese Referenzliste, sendet die Nachricht, um das ausgewählte Element abzurufen, und speichert das Ergebnis in einer anderen Liste. Dies geschieht alles, wenn auf die Schaltfläche „OK“ geklickt wird.
Names Default To Here( 1 );
dt = Current Data Table();
number = N Cols( dt );
rbList = {};
rbResult = {};
FactorType = {"Continuous", "Categorical"};
win = New Window( "Data Entry",
<<MODAL></MODAL>
Wenn Sie es noch nicht getan haben, empfehle ich Ihnen dringend, den JMP Scripting Guide zu lesen, Hilfe > Bücher > Scripting Guide. Es wird von unschätzbarem Wert sein, wenn Sie die Sprache und die Operationen lernen, die erforderlich sind, damit ein Skript wie gewünscht funktioniert. Außerdem hat mir das Buch sehr gut gefallen JSL Companion: Anwendungen der JMP-Skriptsprache.Ich würde mit dem Scripting Guide beginnen, da dieser kostenlos in JMP enthalten ist, aber der JSL Companion bietet eine strukturierte Einführung in die Verwendung von JSL anhand einer Reihe praktischer Anwendungen (und der gesamte Code ist enthalten).
Ich hoffe, das hilft Ihnen auf Ihrem Weg! Genießen!
@julianisch
Betreff: For-Schleife in neuem FensterHallo @dg1 ,
Es scheint mir, dass es oben im Fenster angezeigt wird, aber nur einmal, da Sie es programmiert haben. Wenn Sie für jede Spaltenauswahl ein Textfeld benötigen, können Sie in jeder Iteration Ihrer for()-Schleife ein weiteres Anhängen durchführen:
Names Default To Here( 1 );
dt = Open("Example1.jmp");
number = N Cols( dt );
FactorType = {"Continuous", "Categorical"};
New Window( "Data Entry",
<<MODAL></MODAL>

Betreff: For-Schleife in neuem FensterDanke schön! Wissen Sie auch, wie Sie sicherstellen können, dass das Textfeld mit der Aufschrift „Typ des Faktors“ auch zusammen mit den Optionsfeldern angezeigt wird?Betreff: For-Schleife in neuem FensterHallo @dg1 ,
Du machst alles richtig! Aber Ihre Verwendung von <
Names Default To Here( 1 );
dt = Open("Example1.jmp");
number = N Cols( dt );
FactorType = {"Continuous", "Categorical"};
New Window( "Data Entry",
<<MODAL></MODAL>
@julianisch