Hallo, ich habe dieses verwirrende Problem, bei dem ich ein verschachteltes Zahlenbearbeitungsfeld habe und aus irgendeinem Grund die eingegebene Zahl nicht an die Variable sendet, auf die ich sie eingestellt habe. Ich habe versucht, nur diese Zeile auszuwählen und auszuführen, und auf den ersten Blick sendet sie die Informationen an die Variable, aber aus irgendeinem Grund im Kontext weigert sie sich, dies zu tun. Eigentlich habe ich es schon vor einiger Zeit zum Laufen gebracht, aber dann bin ich zu Bett gegangen, aufgestanden und habe vorher nichts geändert (ich habe das aufgerufene Skript geändert und weiter unten ein paar „In Spalte schreiben“-Zeilen eingefügt). ), und das ist passiert, deshalb bin ich etwas verwirrt. Hier ist der Code bis zur <
Clear Symbols();
w = New Window( "Choose Row Number for XRD Run input", // opens a window with a title and this content...
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box( Text Box( "Choose Row Number for XRD Run input" ) ), // a second title, centered
Spacer Box( size( 1, 30 ) ), // a little vertical space
H Center Box( rowtemp = Number Edit Box( 116 ) ), // data entry
Spacer Box( size( 1, 10 ) ), // a little vertical space
H Center Box( // center the button
Button Box( "Import Smaple Data", // this script runs when the button is pressed...
rownumber = rowtemp << Get;Auch eine Nebenfrage, aber wenn ich zur w << close window-Anweisung komme, heißt es
Send erwartet ein skriptfähiges Objekt beim Zugriff oder bei der Auswertung von „Send“, w << /*###*/closeWindow/*###*/
, was mich verwirrt, denn auch das hat früher funktioniert und es folgt auch der Syntax korrekt. Wenn jemand weiß, warum das passiert, wäre das auch hilfreich.
Dank im Voraus.
Ich würde den Wert im Zahlenbearbeitungsfeld mithilfe einer <
Clear Symbols();
w = New Window( "Choose Row Number for XRD Run input", // opens a window with a title and this content...
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box( Text Box( "Choose Row Number for XRD Run input" ) ), // a second title, centered
Spacer Box( size( 1, 30 ) ), // a little vertical space
H Center Box(
rowtemp = Number Edit Box(
116,
10,
<<SETFUNCTION></SETFUNCTION>@txnelson Danke für den Vorschlag! Ich habe es hinzugefügt.
Leider hat es nicht viel gebracht. Meine Firewall blockiert aus irgendeinem Grund den Debugger, daher musste ich auf die Befehle „wait/show“ zurückgreifen und stellte fest, dass ich mit der Funktion „Clear Symbols()“ weniger vertraut war, als ich dachte. Mein aufgerufenes Skript startete mit einem Befehl zum Löschen von Variablen, sodass die Zeilennummervariable gelöscht wurde und der Befehl „w << Fenster schließen“ nicht funktionierte, da auch „w“ entfernt wurde.
Ich glaube, ich verstehe Namespaces nicht genug.
Danke für die Hilfe!
Kurz gesagt für Namespaces:
- Starten Sie alle Ihre Skripte (immer) mit Names Default To Here(1);
- Überlassen Sie „Clear Symbols()“, „Clear Globals()“, „Delete Symbols()“ oder „Delete Globals()“ keinem (Produktions-)Skript, da diese möglicherweise die gesamte JMP-Sitzung durcheinander bringen können (verwenden Sie sie nur zum Debuggen).
Und beides ist eine gute Lektüre: Globale und lokale Variablen (jmp.com) Und Regeln zur Namensauflösung (jmp.com) (Denken Sie daran, auch die Unterthemen zu überprüfen.)