Skript anhalten, bis der Benutzer manuell an der Datentabelle gearbeitet hatLeute,
Ich versuche, mein Skript anzuhalten, damit ein Benutzer manuell an einer offenen Datentabelle arbeiten (Daten manuell untersuchen und Zeilen oder Spalten hinzufügen/löschen) kann, bevor er fortfährt. Ich habe versucht, dies mithilfe eines Dialogfelds zu erreichen, kann die Datentabelle jedoch erst bearbeiten, nachdem das Dialogfeld akzeptiert wurde. Hat jemand Vorschläge, wie ich das erreichen kann?
Protokoll löschen();
Namen standardmäßig hier (1);
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
Neues Fenster( „WARTEN!“,
< Piep(),
V-Listenfeld(
Textfeld(
„Zeilen oder Spalten in der Datentabelle manuell hinzufügen/löschen“
),
)
);
// Der Benutzer fügt Zeilen/Spalten zur offenen Datentabelle hinzu oder entfernt sie, bevor er fortfährt
// Andere Anweisungen
Betreff: Skript anhalten, bis der Benutzer manuell an der Datentabelle gearbeitet hatIch vermute, dass Sie so etwas tun.
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>
wo Sie nicht möchten, dass das „Das sollte erst angezeigt werden, wenn alles in Ordnung ist.“
Sie müssen jedoch NICHTS anderes tun, bis „OK“ gedrückt wird.Normalerweise mache ich das, indem ich Funktionen verwende und sie über die Schaltfläche „OK“ aufrufe.
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
action_okay = function({},
//{DEFAULT LOCAL}, //uncomment this if you want the variables to be local only (don't exist outside the function)
// put everything you want to do after okay button in here.
print("this shouldn't show until okay");
// other stuff
);
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>Betreff: Skript anhalten, bis der Benutzer manuell an der Datentabelle gearbeitet hatWenn Sie in diesem speziellen Beispiel möchten, dass der Benutzer manuelle Vorgänge an einer Tabelle ausführt, können Sie eine Datenansicht/ein Datenfeld für diese Tabelle erstellen, die im selben Fenster angezeigt wird.Zum Beispiel:
Names Default To Here( 1 );
dt = New Table( "My Table" );
dt << Add Rows( 10 );
dt << New Column( "X1", Set Values( J( 10, 1, Random Normal() ) ) );
dt << New Column( "X2", Set Values( J( 10, 1, Random Uniform() ) ) );
nw = New Window( "Prepare Your Data",
hb = H List Box(
V List Box(
Text Box( "Delete Unneccesary Columns in Table and then click OK" ),
Button Box( "OK", nw << close window )
),
Panel Box( "Data Table View",
Border Box( Sides( 15 ), dt << new data box(), <<BORDER></BORDER>

Betreff: Skript anhalten, bis der Benutzer manuell an der Datentabelle gearbeitet hatDas von Vince bereitgestellte Skript und die Idee sollten funktionieren. Sie müssen die Aktionen platzieren, die Sie ausführen möchten, nachdem die Schaltfläche gedrückt wurde. innerhalb der Schaltflächen Funktionsaufruf
Button Box("OK",
<<SET function=""></SET>
Das Skript, das nach dem Klicken auf die Schaltfläche „OK“ ausgeführt wird, ist folgendes:
Print("Sachen machen"); self << Fenster schließen;
Es gibt andere Möglichkeiten, dies zu tun, aber dies ist höchstwahrscheinlich die einfachste Option und ich würde damit beginnen.
Betreff: Skript anhalten, bis der Benutzer manuell an der Datentabelle gearbeitet hatVince,
Wenn ich die Frage des Benutzers verstehe, versuche ich, etwas ganz Ähnliches zu tun, nämlich dem Benutzer zu erlauben, eine Tabelle zu bearbeiten, bevor er mit dem Skript fortfährt. Vielleicht habe ich etwas nicht richtig gemacht, aber wenn ich das obige Skript in meinem Skript verwende, läuft das Programm einfach weiter und verursacht einen Fehler, weil die notwendigen Tabellenänderungen nicht durchgeführt wurden.
Wenn ich also modal verwende, stoppt das Skript, lässt aber keine Tabellenbearbeitung zu.
Wenn ich kein Modal verwende, ist eine Tabellenbearbeitung vor dem Drücken von OK zulässig, das Skript wird jedoch ohne die erforderliche Bearbeitung weiter ausgeführt.
Ich möchte, dass das Skript nicht mehr ausgeführt wird und nicht fortfährt, bis der Benutzer angibt, dass die Tabellenänderungen vorgenommen wurden.
Kann das gemacht werden?
Vielen Dank im Voraus für Ihre Hilfe.
Patrick Carroll
Betreff: Skript anhalten, bis der Benutzer manuell an der Datentabelle gearbeitet hatDanke Vince,
Das war einfach. Ich denke, ich muss etwas über modale Eigenschaften lesen.
Betreff: Skript anhalten, bis der Benutzer manuell an der Datentabelle gearbeitet hatMachen Sie das neue Fenster einfach nicht modal. Dann haben Sie alle Aktionen innerhalb der Schaltfläche „OK“ (oder einer anderen Schaltfläche).
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>