<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe ein Skript geschrieben, um Benutzereingaben beim Start zu erhalten / Stoppdatum und -zeit für Produktionsdaten.Im Fenster , es gibt zwei Knöpfe , ein OK und Abbrechen.Alles, was mit der Ausgabe verbunden ist, nachdem Sie die Daten eingegeben und auf OK geklickt haben, ist in Ordnung.Die Probleme sind mit der Abbrechen-Schaltfläche.Für eine , Ich habe diesen Wurf gelesen () wird das Skript verlassen.Wenn Sie das folgende Beispiel ausführen , Wenn Sie auf Abbrechen klicken, wird die ausgegeben "GedrücktAbbrechen" Datum ins Protokoll , aber es wird auch die ausgegeben "ContinueDateTime" und richtig "Taste gedrückt" Daten , die aufgrund des Wurfs ignoriert werden sollten.
Andere "Problem" ist die Möglichkeit, die Schreibweise des Wortes Cancel zu ändern ( dh abbrechen ) und die Taste funktioniert nicht mehr.Wenn Sie darauf klicken , nichts passiert.Nicht, dass das eine große Sache wäre , nur seltsam und etwas, das ich nicht erklären kann.
Trotzdem , unten ist eine Auswahl meines Codes ; jede Hilfe wird sehr geschätzt.
Neues Fenster ( "Berichtsdaten und -zeiten" , << Modal ,
V Listenfeld (
V Listenfeld (
Textfeld ( " Anfangs- und Enddaten und -zeiten auswählen " ) ,
Textfeld ( "" ) ,
Textfeld ( " Datumsformat JJJJ-MM-TT " ) ,
Textfeld ( " Zeitformat HH-MI-SS-ss " ) ) ,
H Listenfeld (
V Listenfeld (
Textfeld ( "" ) ,
Textfeld ( "Startdatum " ) ,
Datum1 = Textbearbeitungsfeld ( "2013-04-01" ) ) ,
V Listenfeld (
Textfeld ( "" ) ,
Textfeld ( "Ende" ) ,
Datum2 = Textbearbeitungsfeld ( "2013-04-05" ) ) ) ,
H Listenfeld (
V Listenfeld (
Textfeld ( "" ) ,
Textfeld ( "Anfangszeit" ) ,
Zeit1 = Funkbox ( { " 5:00 UHR " , " 5.00 " ,
" Erster Gegenstand " , "Handbuch" } ) ,
Zeit1m = Textbearbeitungsfeld ( "05-00-00-00" ) ,
Textfeld ( "" ) ) ,
V Listenfeld (
Textfeld ( "" ) ,
Textfeld ( "Endzeit " ) ,
Zeit2 = Funkbox ( { " 5:00 UHR " , " 5.00 " ,
" Letzter Artikel " , "Handbuch" } ) ,
Zeit2m = Textbearbeitungsfeld ( "17-00-00-00" ) ,
Textfeld ( "" ) ) ) , ) ,
H Listenfeld ( Textfeld ( " " ) ,
Button-Box ( "OK" ,
GedrücktOkay = MDYHMS ( Heute () ) ;
Show ( GedrücktOkay ) ;
ButtonPressed = "Drückte die OK-Taste" ; ) ,
Button-Box ( "Stornieren" ,
Abbrechen gedrückt = MDYHMS ( Heute () ) ;
Show ( Abbrechen gedrückt ) ;
ButtonPressed = "Abbrechen-Taste gedrückt" ;,
Wurf ( ) ; ) ) ) ;
ContinueDateTime = MDYHMS ( Heute () ) ;
Show ( ContinueDateTime ) ;
Show ( ButtonPressed ) ;
Das Textargument der throw()-Funktion erscheint im Protokoll, wenn sie aufgerufen wird.Nützlich zum Debuggen.
Danke für die Antwort, so habe ich es letztendlich gemacht.Ich dachte, Sie könnten throw() in die Auswertung der Schaltfläche einbetten und das Skript vollständig beenden.Ich bin mir nicht sicher, was der Zweck ist, "Text" in den Wurf aufzunehmen, es sei denn, er speichert den Text in einer Variablen.Vielleicht wäre dies in einem größeren Skript mit mehreren Austrittspunkten nützlich, um zu protokollieren, wo ein Skript beendet wird (?).
Nochmals vielen Dank für die Hilfe, es wird sehr geschätzt.
Steve
Sie brauchen throw() nicht für Ihre Abbruch-Button-Logik.Wenn Sie Abbrechen drücken, wird das Dialogfeld automatisch geschlossen, da es sich um ein modales Dialogfeld handelt.
Modale Dialogfelder liefern eine OK- und eine Abbrechen-Schaltfläche für Sie, wenn Sie sie nicht angeben.Die einzige Möglichkeit, ein modales Dialogfeld zu verlassen, besteht darin, die Schaltflächen OK oder Abbrechen zu drücken.
Wenn Sie mehr Kontrolle wünschen, nehmen Sie das << modal() heraus.Ein nicht modales Dialogfeld ermöglicht es Benutzern jedoch, andere Dinge in JMP zu tun, während sie geöffnet sind, was Sie möglicherweise nicht möchten.
Wenn Sie das Skript beenden möchten, wenn der Benutzer auf „Abbrechen“ drückt, führen Sie „check“ und „throw()“ außerhalb des Dialogfelds aus.
Button-Box ( "Stornieren" ,
Abbrechen gedrückt = MDYHMS ( Heute () ) ;
Show ( Abbrechen gedrückt ) ;
ButtonPressed = "Abbrechen-Taste gedrückt" ;
)
)
) ;
ContinueDateTime = MDYHMS ( Heute () ) ;
Show ( ContinueDateTime ) ;
Show ( ButtonPressed ) ;
wenn ( gedrückt == "Abbrechen-Taste gedrückt" ,
Wurf ( "Abbrechen-Taste gedrückt" ) ;
) ;