Diese Demonstration veranschaulicht also, wie die For-Funktion für die Iteration verwendet wird. Und bisher haben wir den Skripteditor mit dem Protokoll verwendet, um unsere Skripte zu testen und die Ergebnisse zu beobachten. Aber das wollen wir uns jetzt mit dem Debugger anschauen. Ich habe also ein Skript-Editor-Fenster geöffnet und beginne mit der Eingabe von Names Default to Here. Und ich werde diesen booleschen Wert ausdrücken, ich füge gerade keine Leerzeichen hinzu. Ich werde tatsächlich alles in einer Zeile eingeben und dann die automatische Neuformatierung für mich bereinigen lassen. Also tippe ich ein Semikolon und dann For, offene Klammern, a gleich Semikolon, b gleich Semikolon, i gleich Komma – also initialisiere ich drei Variablen. Dann werde ich den Test eingeben, der i kleiner als Komma ist, und dann werde ich sowohl b als auch i aktualisieren. Also wird b aktualisieren-- b+ gleich Das ist also eine Inplace-Zuweisungsfunktion, die Add-to-Funktion, die den aktuellen Wert von b überschreibt und ihn um ein Semikolon erhöht, weil ich zwei Dinge aktualisiere, und dann i++, das ++ , wieder der Post-Inkrement-Operator, der an Ort und Stelle zu i addiert. Und dann ein Komma, und dann ist der Körper dieser einfachen Schleife die Show-Funktion. Und ich zeige einfach a, Komma, b, Komma – und dann rufe ich tatsächlich die Multiplikationsfunktion mit dem Operator auf – also a mal b. Und dann schließe ich alle meine Klammern, füge das Semikolon hinzu, klicke mit der rechten Maustaste und formatiere neu. Nun, eine Sache – nun, zwei Dinge, die hier zu beachten sind – eine ist, dass JMP einige zusätzliche Semikolons für mich hinzugefügt hat. Es sah, dass ich in diesem ersten Argument Funktionen zusammenklebte. Es sah, dass ich im dritten Argument Funktionen zusammenklebte. Und so fügte es diese Semikolons hinzu. Sie tun nicht weh. In der Praxis würde ich diese wahrscheinlich aus meinem Skript entfernen, da sie nicht erforderlich sind, es sei denn, ich würde weitere Funktionen hinzufügen -- zusammenkleben. Und die andere Sache, die ich tun könnte, ist, dies neu anzuordnen, sodass jedes Argument seine eigene Zeile hat. Aber ich möchte, dass dies mit dem übereinstimmt, was ich im Kurs-PDF habe, wenn wir in den Debugger gehen. Also werde ich es so belassen, wie JMP es neu formatiert hat, außer dass ich diese Semikolons loswerde. Es gibt also mehrere Möglichkeiten, wie wir den Debugger starten können. Sie können zum Menü Bearbeiten gehen, und es gibt eine Option Debug-Skript. Sie können sehen, dass die Tastenkombination Strg + Umschalt + R ist. Sie können hier im Skript-Editor-Fenster auf die Symbolleistenschaltfläche Debuggen klicken. Oder Sie können mit der rechten Maustaste klicken und Skript debuggen auswählen. Und da dies die letzte ist, die ich Ihnen zeige, werde ich fortfahren und diese Methode anwenden. Dieser Debugger ist also eine zweite Instanz von JMP. Und die ursprüngliche Instanz von JMP wird vorübergehend ausgesetzt. Wenn es also irgendeine Art von Interaktion gibt, wie z. B. ein Dialogfeld, das Ihr Skript erfordert, wird das Debugger-Fenster angehalten, bis Sie diese Aktion ausführen. Und dann wird die Steuerung an den Debugger zurückgegeben, sobald dies abgeschlossen ist. Und wenn Sie mit dem Debugger fertig sind, schließen Sie ihn einfach. Sie können einfach das X in der oberen rechten Ecke oder die Stopp-Schaltfläche hier in der Symbolleiste verwenden. Und das bringt Sie zur ursprünglichen Instanz von JMP zurück. Zu Beginn werde ich diese Schleife einfach so durchlaufen lassen, wie sie ist, ohne Haltepunkte einzufügen. Und hier gibt es zwei Schaltflächen. Einer ist Run und der andere ist Run ohne Breakpoints. Und da ich im Moment keine Haltepunkte habe, werden diese dasselbe tun. Wenn ich Haltepunkte habe, die ich jetzt verwenden möchte, verwende ich diese Schaltfläche ganz links. Also klicke ich darauf. Und es lässt mich wissen, dass die Programmausführung beendet ist, es sei denn, ich starte neu, was ich in Kürze tun werde. Die einzige Möglichkeit besteht darin, den Debugger zu schließen. Aber bevor ich neu starte, möchte ich hier unten im Bedienfeld auf die Registerkarte „Lokale“ gehen, wo das Skript angezeigt wird. Und der Standardnamensraum ist Here, den ich online aufgerufen habe. Und Sie können sehen, dass am Ende der Ausführung des Skripts der Wert von a ist Der Wert von b ist Und der Wert von i ist So, jetzt möchte ich verwenden der Debugger, um bei jedem Iterationsschritt die Werte von a, b und i zu betrachten. Also werde ich auf die Schaltfläche Neustart klicken. Und ich möchte einen Haltepunkt in der Zeile hinzufügen. Dazu klicke ich direkt rechts neben die Zeilennummer. Und Sie können so viele Haltepunkte haben, wie Sie möchten. In diesem einfachen Skript brauchen wir wirklich nur das eine. Das bedeutet also, dass wir line auswerten und diesen Here-Namensraum festlegen. Und dann werden wir innerhalb der for-Schleife das Initialisierungsargument auswerten. Wir werten den Test aus. Wir werten den Körper der for-Schleife aus, der nur die Show-Funktion ist. Und dann machen wir eine Pause und sehen die Werte auf der Registerkarte "Lokale". Lassen Sie mich darauf zurückkommen. Und wenn ich dann erneut auf „Ausführen“ klicke, aktualisieren wir, führen den Test durch, führen den Text aus und pausieren und sehen diese Werte. Und das machen wir so lange, bis der Test fehlschlägt und wir die Schleife verlassen. Ich möchte also nichts ausgewählt haben. Und ich werde die linke Run-Taste verwenden. Auch hier möchte ich es nicht ohne Haltepunkte ausführen. Also werde ich das ausführen. Und Sie können sehen, dass wir an der Linie stehen geblieben sind, nachdem wir das ausgewertet haben. Und die Werte von a, b und i sind bzw. Um den nächsten Schritt der Iteration auszuführen, klicke ich erneut auf die Schaltfläche Ausführen. Und jetzt sehe ich, dass die Werte von a, b und i bzw. sind. Und ich kann noch einmal laufen. Und wir erreichen die Endwerte von a, b und i. Und ich bekomme die Meldung, dass die Programmausführung beendet wurde. Und ich kann entweder neu starten, wenn ich etwas anderes tun wollte. Ich kann auf die Stopp-Schaltfläche klicken. Oder ich könnte mit dem X in der oberen rechten Ecke schließen. Und ich fahre fort und klicke auf die Schaltfläche Stopp. Das gibt die Kontrolle dann an meine ursprüngliche Sitzung von JMP zurück. Stellen wir uns nun vor, wir hätten die Aushärtungszeit einer Verbindung gemessen, die in der Produktion ist. Und jeder Durchlauf wird während der Produktion fünfmal beprobt, und wir bestimmen diese Aushärtungszeit für jede Probe. Und wir wollen uns die Verteilung der Aushärtungszeiten für jede Probe ansehen. Also klicke ich im Course Journal im Abschnitt Cure Time Data auf Cure Time Data. Und eines der Dinge, die wir beim Skripting empfehlen, ist, Dinge interaktiv auszuprobieren, um sicherzustellen, dass das, was Sie zu tun versuchen, machbar ist. Also möchte ich Histogramme für die Aushärtungszeit bis zum Ende. Also werde ich nur ein einfaches Beispiel machen, um zu beginnen. Ich gehe zum Menü „Analysieren“ und wähle „Verteilung“ aus. Und ich werde Cure Time in diese Y-Rolle stecken. Und denken Sie noch einmal daran, dass die Rolle hier Y ist. Und ich klicke auf OK. Und wenn ich mir das ansehe, denke ich, nun, das ist großartig. Das ist genau das, was ich für alle fünf meiner Heilungszeitverteilungen will. Das ist also die Plattform, die ich verwenden möchte. Und ich habe eine kleine Vorlage für ein Skript zusammengestellt, das diesen Bericht nachbilden würde. Lassen Sie mich zum Home-Fenster zurückkehren und es öffnen. Dieses Skript mit dem Start der Verteilungsplattform, dieser Y-Rolle und dann der Spaltenfunktion mit Cure Time als Zeichenfolge erstellt diesen Bericht neu. Und so werde ich eine Schleife schreiben, die auf dieser Vorlage basiert. Also gehe ich weiter und schließe dieses Cure Time-Fenster und navigiere zurück zu meinem Skript-Editor und lösche den Inhalt, damit ich einfach dasselbe Fenster verwenden kann. Und wieder beginne ich mein Skript mit Names Default to Here. Und wie zuvor werde ich JMP das Skript mit der automatischen Neuformatierung für mich bereinigen lassen. Meine for-Schleife beginnt also mit dem Argument c. Und ich werde c einen Wert zuweisen. Das ist die einzige Variable, die ich initialisieren werde. Ich gebe ein Komma ein. Der Test ist c kleiner als gleich der Anzahl der Spalten. Und nur zur Erinnerung: Wenn Sie mit einer großen Datentabelle arbeiten, empfiehlt es sich möglicherweise, die Anzahl der Spalten außerhalb der Schleife zu zählen, das Ergebnis in einer Variablen zu speichern und diese Variable dann so zu gestalten, wie Sie es möchten vergleiche c mit. In diesem Fall sind es fünf Spalten, weil wir mit der zweiten beginnen. Es sind insgesamt fünf Spalten. Ich mache mir also keine allzu großen Sorgen darüber, diese Zählung jedes Mal zu wiederholen. Aber eine bewährte Methode wäre, das herauszuziehen. Danach tippe ich ein Komma. Das Update-Argument ist einfach c und der Post-Increment-Operator, die zwei Pluszeichen, ein weiteres Komma, und dann gebe ich Distribution in Klammern ein, y, öffne die Klammern erneut, tippe Spalte ein und setze dann einfach c-- der Zähler-- in diesen Klammern. Und ich werde jetzt mit dem Pfeil rübergehen, nur um sicherzustellen, dass alle meine Klammern übereinstimmen. Wenn mir hier eine schließende Klammer fehlte und ich versuchte, neu zu formatieren, würde ich eine Meldung erhalten, dass etwas fehlt. Die Neuformatierung ist also eine einfache Möglichkeit, etwas zu debuggen. Ich gebe das Semikolon ein. Und dann werde ich fortfahren und die Schaltfläche „Skript neu formatieren“ verwenden. Und dann gehe ich weiter und führe das Skript aus. Und was ich mit dem so geschriebenen Skript erhalte, ist ein separates Fenster für jede Beobachtung der Heilungszeitwerte, weil ich die Verteilung starte – wenn wir zurück zum Skript-Editor-Fenster kommen – ich starte die Verteilungsplattform erneut bei jedem Schritt der Iteration. Aber wenn Sie mit der Verteilung vertraut sind – und ich gehe zurück zum Menü „Analysieren“, wählen Sie „Verteilung“ und geben Sie alle fünf Werte für die Aushärtungszeit in diese Y-Rolle ein. Wenn Sie mit der Verteilung vertraut sind, wissen Sie, dass Sie all diese im selben Fenster erhalten können. Im Journal gibt es also ein vorgefertigtes Skript zum Durchlaufen, um diese Y-Rolle mit allen Spaltennamen aufzubauen und denselben Bericht mit allen fünf Verteilungen im selben Fenster zu erstellen. Bevor ich damit beginne, möchte ich alle diese Berichtsfenster schließen. Ich gehe zur Menüleiste und wähle unter Fenster die Option Alle Berichte schließen aus. Und dann werde ich das Tagebuch finden. Und ich möchte auf das Skript Cure Time Distributions klicken. Und wir werden das im Debugger durchgehen. Deshalb werde ich darüber sprechen, was bei jedem Schritt in dieser Debugger-Umgebung passiert, und nicht hier im Fenster des Skript-Editors. Also klicke ich mit der rechten Maustaste und wähle Debug Script aus. Denken Sie noch einmal daran, dass es mehrere Möglichkeiten gibt, den Debugger zu starten. Und ich möchte einen Haltepunkt in Zeile hinzufügen, um zu sehen, was bei jedem Schritt der Iteration passiert, wie wir es in dem einfachen Beispiel zuvor getan haben. Und ich möchte auch eine Überwachung der c-Variablen und der yCol-Variablen hinzufügen. Also gehe ich zum Watch-Tab. Und ich klicke auf das grüne Pluszeichen, um eine Uhr hinzuzufügen. Auf diese Weise kann ich mir also bestimmte Variablen in meinem Skript ansehen. Hier habe ich nicht sehr viele Variablen. Aber wenn Sie ein großes Skript mit vielen Variablen hatten und nur wenige beim Debuggen im Auge behalten mussten, ist die Verwendung der Registerkarte „Überwachen“ eine großartige Möglichkeit, dies zu tun. Also klicke ich auf das grüne Pluszeichen, um die Uhr hinzuzufügen. Ich gebe die Variable c ein und klicke auf OK. Und dann möchte ich auch eine Überwachung für die Variable yCol hinzufügen und ich klicke auf OK. Bevor ich jetzt damit beginne, möchte ich ein wenig darüber sprechen, was im gesamten Skript passiert. Und dann werden wir das sehen, wenn wir den Debugger ausführen. Die allererste Zeile erstellt also eine Variable namens yCol. Und yCol wird die Y-Analyserolle der Verteilungsplattform gefolgt von leeren Klammern speichern, da meine Schleife diesen Ausdruck aufbauen wird, indem sie die Spaltennamen in die Klammern nach dieser Y-Rolle einfügt. Und ich zitiere es mit dem Ausdruck, denn wenn Sie einfach versuchten, yCol zu sagen und den Wert y mit Klammern danach zuzuweisen, würden Sie eine Fehlermeldung erhalten, weil JMP dies nicht als eine definierte Variable erkennt. Es erkennt es nicht als Funktion. Ich möchte also nur diesen Literalwert in yCol speichern, ohne dass JMP versucht, ihn auszuwerten. Das ist also, was Linie tun wird. Zeilen durch sind meine for-Schleife, wo wir mit der Spalte beginnen. Wir iterieren, bis uns die Spalten ausgehen. Und noch einmal, in einem Skript auf Produktionsebene, insbesondere wenn es größere Datentabellen geben könnte, möchten wir die Anzahl der Spalten außerhalb der Schleife zählen und diese in eine Variable einfügen. Und dann fügt der Körper der for-Schleife einfach Spalte c hinzu, also Spalte diese erste Runde in den in yCol gespeicherten Ausdruck. Und Insert In wird nicht versuchen, sein erstes Argument auszuwerten. Ich muss also nichts Besonderes mit der yCol-Variablen machen. Es schaut es sich einfach an und führt dann die Operation aus, in diesem Fall das Hinzufügen einer Spalte in den Klammern nach dem y. Die Show-Funktion dient nur zur Veranschaulichung, damit wir sehen können, was bei jedem Schritt passiert. Dieses Stück würde, wenn ich den Debugger nicht verwenden würde, im Protokoll erscheinen. Ich habe also die Werte im Auge, was der Verwendung der Show-Funktion entspricht. Wir aktualisieren. Wir testen, und unter der Annahme, dass c immer noch kleiner oder gleich der Anzahl der Spalten ist, fügen wir die nächste Spalte in yCol ein. Dann, sobald die Schleife abgeschlossen ist, mit anderen Worten, uns die Spalten ausgehen, haben wir eine letzte Codezeile, über die ich von innen nach außen sprechen werde. Wir möchten die Insert-Funktion verwenden, um den Verteilungsausdruck zu ändern. Wir verwenden Einfügen statt Einfügen in, weil die Verteilung ein in JMP integrierter Plattformstart ist. Ein Benutzer kann die Verteilung selbst nicht ändern. Wir können einen Ausdruck ändern, der eine Verteilung verwendet. Also verwenden wir Insert. Und dann packen wir die Verteilung in die Expr-Funktion, sodass JMP nicht versucht, die Verteilung auszuwerten. Wenn ich starten würde – ich werde das nur hervorheben – Wenn ich nur diesen Teil dieser Codezeile ausführen würde, würde JMP sagen, hey, Sie haben mir nicht das erforderliche Argument in der Y-Rolle gegeben. Es würde mir also den Start der Vertriebsplattform ermöglichen. Und dann würde der Benutzer seine Spalten einfügen, aber wir eigentlich nicht – das würde den Zweck unseres Skripts zunichte machen, richtig? Das ist also das erste Argument. Das zweite Argument – wenn ich einfach yCol als zweites Argument einfüge, würde JMP versuchen, das auszuwerten. Und es würde sehen-- Sie werden sehen, wie es aussehen wird, nachdem wir die Schleife gemacht haben. Aber es würde nur das große Y mit Klammern und eine Reihe von Spaltennamen sehen. Und damit weiß JMP nichts anzufangen. Es erkennt das nicht als Variablennamen oder Funktion. Name Expr ermöglicht es mir also, mir anzusehen, was gespeichert ist, und yCol, ohne zu versuchen, es auszuwerten. Und dieser nicht ausgewertete Ausdruck, der in yCol gespeichert ist, wird nach der Verteilung in Klammern gesetzt. Weil dann, wenn ich das mache, die Verteilung mit der Y-Rolle in allen Spalten immer noch in Anführungszeichen steht, packen wir das Ganze in Eval. Und wir können durchgehen, wenn wir wieder in die reguläre Instanz von JMP zurückkehren und das ein bisschen mehr aufschlüsseln. Also ich habe meine Uhren. Und derzeit sind die Variablen undefiniert. Das ist es, was als Wert angezeigt wird. Lassen Sie uns zum ersten Haltepunkt laufen. Und so speichert c nach diesem ersten Durchlauf, bevor wir aktualisieren, den Wert von Und jetzt yCol, anstatt nur ein Y mit leeren Klammern, hat es Column Cure Time Und erinnern Sie sich an meine kleine Vorlage, die Sie dort im Hintergrund sehen können - Ich kann nicht dorthin navigieren, weil der Debugger aktiv ist – aber das würde diese Verteilung nur für eine Spalte erzeugen. Also werde ich die nächste Iteration noch einmal durchlaufen. Jetzt ist c gleich und die y-Analyserolle beginnt mit zwei Aushärtezeitspalten. Ich werde wieder laufen. Jetzt haben wir drei. Und das kann ich auch weiterhin tun. Sie können im Protokoll im Hintergrund sehen, dass diese Ergebnisse aufgrund der Show-Funktion angezeigt werden. Also werde ich damit fortfahren, bis wir die Schleife verlassen. Und alle fünf Spalten für die Aushärtungszeit werden gespeichert – und das ist einfacher im Protokoll Ihrer regulären JMP-Sitzung zu sehen – aber diese werden jetzt alle in yCol gespeichert. Die Programmausführung ist also beendet. Ich fahre fort und klicke im Debugger auf Stopp. Und damit ist die letzte Zeile nun ausgewertet. Und ich habe die Aushärtezeitverteilungen mit allen fünf Histogrammen im selben Fenster. Lassen Sie uns jetzt noch einmal kurz zum Skripteditorfenster zurückkehren, um über diese Zeile zu sprechen, da ich denke, dass es wichtig ist, darüber nachzudenken, wie wir Ausdrücke von innen nach außen aufbauen. Also werde ich das ausführen und eine Reihe von Fehlern erstellen, nur um sicherzustellen, dass klar ist, warum wir das so geschrieben haben, wie wir es getan haben. Also werde ich die vorab geschriebene Zeile auskommentieren. Um auf die Beschreibung zurückzukommen, die ich in der Debugger-Instanz beschrieben habe, gebe ich das Wort Insert ein. Und wenn Sie neu in der Skripterstellung sind, ist es möglicherweise ein wenig Versuch und Irrtum, wann Sie Einfügen verwenden, wann Sie Einfügen in verwenden. Aber auch in diesem Fall versuche ich: Ich muss eine Plattform mit bestimmten Analyserollen oder bestimmten Spalten in der Analyserolle starten. Aber ich kann eine Plattform nicht ändern. Ich kann nur vom Benutzer erstellte Variablen ändern. Diese werden als L-Werte bezeichnet. Also lass uns das versuchen. Ich werde Distribution für diesen Start eingeben, die Klammern öffnen, die Klammern schließen, ein Komma eingeben und versuchen, yCol einzufügen. Auch hier komme ich aus einer naiven Perspektive, dass ich möchte, was in yCol und den Klammern nach der Verteilung gespeichert ist. Mal sehen, was passiert, wenn ich diese eine Zeile ausführe. [ERROR CHIME] Ich erhalte eine Fehlermeldung, Name nicht aufgelöst. Y im Zugriff oder Auswertung von Y aller Spalten. Wenn ich das also ablehne, bedeutet das nur, dass JMP versucht hat, dies zu bewerten. Es konnte nicht. Also haben wir einen Fehler bekommen. Das wurde also nicht abgeschlossen. Die Funktion, die wir verwenden, wenn wir einen gespeicherten Ausdruck oder einen Ausdruck in Anführungszeichen abrufen müssen, ohne ihn auszuwerten, ist also Name Expr. Also werde ich Klammern umbrechen – oops – öffnen. Ich werde yCol in Name Expr einschließen. Und das könntest du testen. Also was passiert. Wenn ich gerade yCol ausgeführt habe, haben Sie den Fehler gesehen, den wir gerade erhalten haben. Wenn ich Name Expr yCol ausführe, können Sie im Protokoll sehen - oops, ich versuche, die Größe zu ändern. Sie können im Protokoll sehen, dass JMP mir dabei keinen Fehler ausgibt. Es gibt nur diesen in Anführungszeichen gesetzten Ausdruck zurück. Wenn ich jetzt versuche, line oh, nun, dieses Mal auszuführen, besteht das Problem darin, dass JMP dieses Mal kein Problem mit der yCol-Variablen hatte. Aber jetzt wurde es ohne diesen erforderlichen Wert vertrieben. Ich möchte also nicht, dass JMP diese Plattform startet. Davon kündige ich. Ich möchte die Verteilung in Expr packen, also wird JMP überhaupt nicht versuchen, das auszuwerten. Und wieder können Sie das markieren und es nur zum Testen ausführen, OK, das verursacht keine Probleme. Und jetzt, wenn ich das ausführe, wenn ich in das Protokoll schaue, gibt es die Codezeile, die ich ausgeführt habe. Hier ist das Ergebnis, eine Verteilung mit einer Y-Rolle und allen darin enthaltenen Spalten. Das letzte Stück, wie Sie in der Zeile gesehen haben, besteht also darin, das Ganze zu umschließen – und dies ist nur eine Möglichkeit, dies zu tun –, aber die gesamte Zeile in die Eval-Funktion einzuschließen. Und das betreibe ich. Und es gibt ein weiteres Verteilungsfenster mit allen Verteilungsberichten. Also wollte ich nur einige Fehler machen, als ich das entwickelte, nur weil ich denke, dass es den Leuten hilft zu verstehen, warum wir diese Dinge so schreiben, wie wir es tun. Nun, eine andere Sache, die ich erwähnen möchte, ist, dass wir allgemein empfehlen würden: Als ich diese erste Heilungszeitverteilung durchführte, ging ich, wenn Sie sich erinnern, zu Analysieren, Verteilung, legte einfach die Heilungszeit in die Y-Rolle und klickte auf OK. Wir empfehlen oft, dass Sie sich einfach das Skript schnappen, das JMP dafür für Sie schreiben würde, und es in diesem Fall als Grundlage für das Schreiben dieser Schleife verwenden. Und der einzige Grund, warum ich das bei den Distributionen nicht gemacht habe, ist, dass die Syntax, in der ich nur diese Analyserolle habe, eine ältere Syntax ist. Wenn ich zum roten Dreieck neben den Verteilungen gehe und Skript im Skriptfenster speichern auswähle, gibt die neuere Syntax für jede Spalte einzeln an, ob es sich um eine kontinuierliche oder nominale Verteilung handelt. In dieser Schleife ist also nur ein bisschen mehr Skripting erforderlich als bei der älteren Syntax. Die ältere Syntax funktioniert gut. Aber ich würde wahrscheinlich empfehlen, diese neuere Syntax zu verwenden. Es ist nur eine etwas kompliziertere Schleife. Aber bei den meisten Plattformen reicht es aus, das Skript zu nehmen, das JMP für uns schreibt. Ich werde dieses Skriptfenster schließen. Und wir werden uns ein weiteres Beispiel dafür ansehen, wie man etwas interaktiv macht. Dieses Mal werde ich dieses Skript erfassen. Obwohl meine Schleife vorab geschrieben ist. Nehmen wir an, ich wollte Kontrolldiagramme aller fünf Aushärtezeitwerte betrachten. Und so beginne ich interaktiv, indem ich zu meinem Analyse-Menü gehe. Unter Qualität und Prozess wähle ich Control Chart Builder aus. Ich möchte Day in diese Untergruppenrolle und Cure Time in die Y-Rolle stecken. Und das automatisch, der Control Chart Builder gibt mir die individuellen Mess- und Bewegungsbereichsdiagramme der Aushärtungszeit. Das ist also mein Ausgangspunkt. Ich klicke auf „Fertig“, um die Systemsteuerung auszublenden. Und dann gehe ich zum roten Dreieck neben Control Chart Builder und speichere Skript in einem Skriptfenster. Also dieses Skript-Editor-Fenster – dieses Skript-Editor-Fenster. enthält jetzt den Control Chart Builder, der dieses Ergebnis neu erstellt. Um es jetzt mit meinem vorgefertigten Skript in Einklang zu bringen, werde ich die Zeile löschen, die die Größe festlegt. Das müssen Sie natürlich nicht. Ich vereinfache dies nur zu Demonstrationszwecken. Was wir also sehen, ist, dass der Control Chart Builder der Plattformstart ist. Und dann haben wir einige Optionen. Wir verstecken das Control Panel, indem wir den booleschen Wert We're not show Capability verwenden. Und dann ist da noch diese Variablenrolle. Und die Variablenrolle hat eine Untergruppe. Das wird für alle Werte der Aushärtungszeit gleich sein. Und dann hat es eine Y-Rolle mit der Aushärtungszeit, in diesem Fall Aushärtungszeit. Was wir also tatsächlich tun müssen, ist drei Dinge aufzubauen. Wir müssen diese y-Analyserolle mit den Aushärtezeitspalten aufbauen, den Variablenteil davon aufbauen, indem wir – sobald wir alle Aushärtezeitspalten in der Y-Rolle haben – das hier hinzufügen. Und dann bringen Sie dieses Variablenstück in den Start des Control Chart Builder. Gehen wir also zurück zum Journal und klicken Sie auf Cure Time Control Charts. Also noch einmal, es sind drei Teile, die die Rolle der y-Analyse aufbauen. Und das ist genau das, was wir getan haben – diese Zeilen durch sind genau das, was wir getan haben, was wir im Vertrieb gesehen haben. Und ich verwende nur eine andere Namenskonvention für die Variablen. Dann wollen wir das Stück Variablen aufbauen. Und so verwende ich nur die Insert-Funktion. Ich habe Variablen mit der Untergruppe Tag, die für alle Heilungszeitwerte gleich sein wird. Aber ich möchte nicht, dass JMP versucht, die Wortvariablen auszuwerten. Ich bekomme eine Fehlermeldung. Also werde ich Expr verwenden. Und dann rufe ich genau wie bei der Verteilung in diesem Skript die Liste der Spalten ab, die in yExpr gespeichert ist, und füge sie dem Variablenstück hinzu. Dann erstelle ich in diesem Skript tatsächlich die grundlegende Vorlage für den Control Chart Builder ohne das Variablenstück und speichere es in der Variablen ccExpr. Und schließlich werde ich die Variablenzeile hinzufügen. Wenn wir uns also diesen Code im Hintergrund ansehen, wird diese Variablenzeile zum Start des Control Chart Builder hinzugefügt. Und in diesem Fall habe ich nur Name Expr für beide verwendet, da es sich um Ausdrücke in Anführungszeichen handelt, die ich bereits definiert habe. Ich speichere dieses Ergebnis in einer eigenen Variablen, anstatt diese Insert-Funktion in eval einzuschließen. Und dann verwende ich cc in meinem Skript, und das wird diesen erstellten Ausdruck auswerten. Lassen Sie uns jedoch fortfahren und dies in den Debugger übernehmen. Also klicke ich mit der rechten Maustaste und wähle Debuggen. Ich navigiere zum Watch-Tab. Und ich möchte die aktuellen Überwachungsvariablen aus meinen anderen Skripten entfernen, also klicke ich einfach auf die Schaltfläche, um alle Überwachungen zu löschen. Und dann werde ich vier Überwachungen für die vier Variablen in diesem Skript hinzufügen. Also klicke ich auf das grüne Plus. Und zuerst gebe ich yExpr ein und klicke auf OK. Und ich klicke erneut auf das grüne Plus und füge varExpr hinzu. Und es spielt keine Rolle, dass ich das groß geschrieben habe, aber ich möchte nur konsistent mit dem sein, was hier im Skript im Text steht. Also klicke ich auf OK. Ich möchte ccExpr hinzufügen. OK klicken. Und schließlich möchte ich cc hinzufügen und auf OK klicken. Ich werde drei Haltepunkte setzen, weil ich hier an drei verschiedenen Orten anhalten möchte. Der erste Haltepunkt wird also online sein. Und das wird mich sehen lassen, was bei jedem Schritt der Iteration passiert. Der nächste Haltepunkt wird online sein. Wir machen also eine Pause, um zu sehen, was in varExpr gespeichert ist. Und schließlich setzen wir einen Haltepunkt online, um zu sehen, was in cc gespeichert ist. Und wenn wir das verwerfen, wird das ausgewertet. Ich verwende die Step Over-Schaltfläche, um den Debugger auszuführen. Also klicke ich darauf. Und die Linie wird ausgewertet, und wir kommen zur Schleife. Und wenn wir unten auf die Registerkarte „Überwachen“ schauen, können Sie sehen, was gerade gespeichert ist und yExpr. Und wenn ich dann erneut auf Step Over klicke, gehen wir zum ersten Haltepunkt. Wenn ich ein drittes Mal auf Step Over klicke, können Sie jetzt sehen, dass yExpr Column Cure Time enthält. Ich klicke erneut auf Step Over, um zu diesem Haltepunkt zu gehen. Klicken Sie noch einmal. Und jetzt haben wir Cure Time in diese Y-Rolle eingefügt. Also werde ich damit fortfahren, bis wir mit der for-Schleife fertig sind. Und wenn Sie sich das ansehen, würden Sie sehen, dass alle fünf Spalten für die Aushärtungszeit in dieser Y-Rolle sind. Jetzt wird line varExpr definieren. Das sind also jetzt Variablen mit der Untergruppe Tag und dann die Y-Rolle mit all diesen Spalten. Ich klicke erneut auf Step Over, und das bringt uns zu der Stelle, an der wir ccExpr definiert haben. Und Sie können das auch auf der Registerkarte „Überwachen“ sehen, dass dies nur den Start des Control Chart Builder speichert, aber ein wichtiges Stück davon fehlt. Und dann setzen wir alles zusammen. Also werde ich noch einmal übersteigen. Und jetzt, wenn Sie das untersuchen möchten, hat der Control Chart Builder, Show Control Panel usw. die in varExpr gespeicherten Werte hinzugefügt. Ich klicke noch einmal auf Step Over. Die Programmausführung wird beendet. Ich klicke auf Stopp. Und jetzt, zurück in meiner regulären JMP-Sitzung, können Sie sehen, dass ich die individuellen Mess- und Bewegungsbereichsdiagramme für Ihre Aushärtungszeit und so weiter habe. In diesen Beispielen betrachten wir also die Verwendung der For-Funktion, die Verwendung der Expr- und Name-Expr-Funktionen unter Verwendung von Insert und dann auch nur einen Blick darauf, wie wir den Debugger in diesen einfachen Kontexten verwenden können. Ich kehre zum Journal zurück und klicke auf „Alle löschen“ „Keine speichern“, ohne Änderungen an einem meiner Skriptfenster zu speichern. Und das wird diese Demonstration beenden.