Wie ordne ich einer Liste eine Spalte zu?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />In JSL gibt es eine Spaltendiagnosefunktion, mit der eine Spalte in einer Tabelle mithilfe der ColList-Funktion einer Liste zugewiesen werden kann. Wenn das Skript ausgeführt wird, muss der Benutzer auf eine Schaltfläche klicken, um die Zuweisung auszuführen. Es erfordert interaktive Benutzereingaben.
Col_dlg = ColumnDialog(
Title("Variablenzuweisung"),
::x = ColList("Run ID", MinCol(1), MaxCol(1), Columns(:LOT)),
.....
);
Gibt es eine Möglichkeit, ein Skript so zu schreiben, dass eine Spalte einer Liste zugewiesen werden kann, ohne dass der Benutzer auf die Schaltfläche im Dialogfenster klickt (bei der Ausführung wird kein Dialogfenster angezeigt)?
Ich habe es versucht:
::x = ColList("Lauf-ID (erforderlich)", MinCol(1), MaxCol(1), Columns(:LOT));
::x = :LOT << Werte abrufen;
::x = Column(dt,"LOT");
alles ist gescheitert. Irgendwelche Hinweise?
Betreff: Wie ordne ich einer Liste eine Spalte zu?Entschuldigung, das war mein Fehler. Meine Erklärung war nicht klar. Was ich gerne mache, ist die Verwendung robuster globaler Variablenzuweisungen für einige Spalten, um die Column Diag-Funktion zu ersetzen, sodass keine interaktive Antwort des Benutzers erforderlich ist. Hier ist die Situation:
In meiner Hauptroutine gibt es ein Column Diag, in dem einige Spalten einigen globalen Variablen zugewiesen werden, die in vielen vorhandenen Funktionen in Bibliotheken aufgerufen werden. In diesen lib-Funktionen werden einige Befehle verwendet:
N_x = NItems(x);
Column(dt, Eval(x2)) << Set Property("Row Order Levels", (1));
Variabilitätsdiagramm(...)
Bivariat(..)
....
Es ist keine Änderung dieser Bibliotheksfunktionen zulässig. Derzeit funktionieren die mithilfe der Funktion „Column Diag“ zugewiesenen globalen Variablen einwandfrei und ohne Probleme mit den vorhandenen Bibliotheksfunktionen. Alle oben vorgeschlagenen Versuche funktionieren jedoch möglicherweise bei einigen Befehlen, führen bei anderen jedoch zu Fehlern.
Ich hoffe, dass meine Erklärung dieses Mal klar ist :-). Oder wahrscheinlich noch mehr Verwirrung stiften :-(.
John
Betreff: Wie ordne ich einer Liste eine Spalte zu?Ich sehe keinen besonderen Grund, die ColList-Ausgabe hier nachzuahmen, aber Sie können eine Liste mit einer Spalte wie dieser erstellen:
dt = Offen ( „$SAMPLE_DATA/Big Class.jmp“ ) ;
Kol = { Spalte ( dt , "Name" )} ;
Spalte ( dt , Kol ) << Eigenschaft festlegen ( „Ebenen der Zeilenreihenfolge“ , ( 1 )) ;
Aber für Ihr Beispiel ist eine normale Spaltenvariable einfacher:
dt = Offen ( „$SAMPLE_DATA/Big Class.jmp“ ) ;
Kol = Spalte ( dt , "Name" ) ;
Kol << Eigenschaft festlegen ( „Ebenen der Zeilenreihenfolge“ , ( 1 )) ;
Noch ein anderer Weg basierend auf einer Liste von Spalten:
dt = Offen ( „$SAMPLE_DATA/Big Class.jmp“ ) ;
:: X = ( dt << Spaltennamen abrufen ())[ 1 ] ;
:: X << Eigenschaft festlegen ( „Ebenen der Zeilenreihenfolge“ , ( 1 ) ) ;
Betreff: Wie ordne ich einer Liste eine Spalte zu?Ja, durch Verwendung
::x2 = Column(dt, "LOT") << Werte abrufen;
gibt mir eine Liste mit allen Werten unter der Spalte LOT, aber dieses ::x2 „verhält“ sich nicht genau wie das ::x, das mithilfe der ColList-Funktion aus der Spaltendiag zugewiesen wurde. Zum Beispiel der folgende Befehl
Column(dt, Eval(x)) << Set Property("Row Order Levels", (1));
mit dem ::x, das mithilfe der ColList-Funktion zugewiesen wurde, aber beim Aufruf wird eine Fehlermeldung angezeigt
Column(dt, Eval(x2)) << Set Property("Row Order Levels", (1));
Die Fehlermeldung lautet:
„Spalte konnte beim Zugriff oder bei der Auswertung von ‚Column‘, Column( dt, Eval( x ) ) nicht gefunden werden.“
Für das von der ColList-Funktion zugewiesene ::x gibt mir Eval(x) „LOT“;
Für das auf diese Weise zugewiesene ::x2 gibt mir Eval(x) eine Liste mit allen Werten unter Spalte LOT.
Was ich gerne mache, ist: Um eine Möglichkeit zu finden, einer Liste eine Spalte zuzuweisen, verhalte ich mich GENAU wie die ColList-Funktion, aber ohne Benutzeroberfläche mit dem Diaglog-Fenster oder interaktiver Benutzerantwort. Wenn mir jemand die Codes für die ColList-Funktion zur Verfügung stellen kann, wäre das großartig!
Betreff: Wie ordne ich einer Liste eine Spalte zu?Ihr vorletzter Versuch hätte funktionieren sollen, aber möglicherweise war die Tabelle mit der Spalte LOT nicht die aktuelle Tabelle.Die folgende Syntax funktioniert:
dt = Offen ( „$SAMPLE_DATA/Big Class.jmp“ ) ;
x1 = : Name << Werte erhalten ;
x2 = Spalte ( dt , "Name" ) << Werte bekommen ;
Stellen Sie sicher, dass die Variable, die auf Ihre Datentabelle verweist, festgelegt ist.Zum Beispiel:
dt = Datentabelle ( „MyLots“ ) ; // Tabelle mit LOT-Spalte
:: X = Spalte ( dt , "VIEL" ) << Werte abrufen ;