Hallo,
Ich habe eine Anwendung erstellt, bei der der Benutzer mithilfe von modalen Fenstern Spalten für die Erstellung eines Modells für ausgewählte PQAs auswählen kann, wie in der angehängten JMP-Datei mit den Spielzeugdaten und dem Skript mit dem Titel „Modell für ausgewählte PQAs und“. Säulen".
Dieses Modell soll eine benutzerdefinierte Ausgabe für jede PQA erstellen, die für einen beliebigen Datensatz mit beliebiger Schreibweise der Spaltennamen ausgewählt wurde. Sobald das Skript ausgeführt wird, wird ein Popup angezeigt, in dem der Benutzer aufgefordert wird, bestimmte Spalten auszuwählen. Dieses Fenster ist in der folgenden Abbildung dargestellt:

Im nächsten Fenster wird der Benutzer aufgefordert, die PQAs und Speicherbedingungen festzulegen und zu fragen, ob der Benutzer den Teildatensatz für jede PQA anzeigen möchte – Speicherbedingungen oder nicht. Das heißt, für jede ausgewählte PQA wird im Hintergrund ein Teildatensatz erstellt. Anschließend werden Modell- und Diagrammergebnisse erstellt und dann bei jeder Iteration der for-Schleife an ein Fenster mit den angepassten und formatierten Daten angehängt (mit den LSL- und USL-Y-Achsenlinien und Y-Achsenbeschriftungen mit Messungen).

Hier ist der JSL-Skriptcode, der die Ausgabe anhand der Benutzereingaben in den oben genannten Fenstern erzeugt:
//select the data in the original data table
Names Default To Here( 1 );
dt = Current Data Table();
//get the unique PQAs
col9 = Column(dt, "PQA");
unique_pqa = Associative Array( col9 ) << get keys;
/////////////////////////////////////////////////////////////
//User Selection Menu(s)
/////////////////////////////////////////////////////////////
//Part 1: ask user for column names in a new window nw1
//possible Group column name (should be character)
character_col_names = dt << Get Column names(character, String);
//possible result column name (should be numeric)
numeric_col_names = dt << Get Column names(Numeric, String);
nw1 = New Window("Column names",
<<MODAL></MODAL>
Wenn mein Ausgabefenster erstellt ist, möchte ich in der Lage sein, das Skript mit allen darin enthaltenen Daten (von denen die Teildaten abhängig sind) in der Originaldatentabelle zu speichern. Wenn ich jedoch die Skripts für alle Ausgaben im Skriptfenster speichere, erhalte ich die folgenden Ergebnisse:
Beachten Sie die
Where ( :PQA == pqa_val & column(listDT, set_storage_condition_col) == selected_stor_cond )
Die Anweisung verhindert, dass das Skript funktioniert.
Ich möchte, dass diese Anweisung in diesem Skript die bestimmte Ausgabe hat. In dem Spielzeugdatensatz, den ich angehängt habe, heißt es beispielsweise
column(listDT, set_storage_condition_col)
ist gleich :Lagerbedingungen
Wenn ich außerdem A als auswählen würde pqa_val ( so dass :PQA == "A" ) und 5C als selected_stor_cond (so dass :Lagerbedingung == „5C“ ).
Das erzeugte Ausgabeskript wäre jedoch nicht vorhanden, obwohl ich mich auf die Benutzereingabe beziehe. Warum schreibt JMP diese Werte nicht wie in diesem Beispiel oben für jede einzelne Instanz in der Schleife in das Skript?
Vielen vielen Dank. Ich habe nicht einmal daran gedacht, Eval() und ähnliches zu verwenden. Ich werde auf jeden Fall mehr darüber lesen und mir den von Ihnen bereitgestellten Link ansehen.
Fügen Sie einen Ausdruck in einen anderen ein, indem Sie Eval Insert, Eval Expr, Parse und Substitute verwenden sollte dir helfen. Außerdem ist << Fenster schließen bei Tastendrücken nicht erforderlich, da Sie modale Fenster verwenden.
Ich habe ein Eval(EvalExpr()) und einige Expr() um und innerhalb der where-Anweisung hinzugefügt:
Mehr sehen...