Ich habe ein einfaches Problem, aber ich weiß nicht, wie ich es richtig ausdrücken soll.
Ich habe ein paar Variablen;
A1 = "44";
A2 = "47";
A3 = "50";
// Zahlen sind absichtlich im String-Format
Und eine Datentabelle, dt, in der diese Variablen unter vielen anderen in einer Spalte, Spalte "LOT", enthalten sind.Wenn ich eine for-Schleife erstelle, um diese Variablen in der Tabelle zu finden und die Zeilen zu markieren, wenn sie gefunden werden, kann ich sie nicht finden.
Für (i = 1, i <= 3, i ++,
foundlot = "A" || char (i); Show (Foundlot);
dt << Wählen Sie Wo (: LOT = Foundlot) << Colors = (5);
);
Mir ist klar, dass das Problem darin besteht, dass Foundlot eine Zeichenfolge "A1", "A2", "A3", ... ist und den Wert von A1, A2 und A3 nicht ersetzt, um einen Vergleich des Werts von A1 mit dem Spaltenwert zu ermöglichen in der Tabelle.
Was müsste ich tun, damit der Wert ersetzt wird, anstatt den Spaltenwert mit der Zeichenfolge "A1" zu vergleichen, die immer nicht übereinstimmt?
Danke für deine Hilfe!
Ich glaube, diese beiden einfachen Skripte unten werden das tun, was Sie wollen.Das Problem, das Sie haben, besteht darin, anzugeben, dass A1, A2 und A3 keine Variablenwerte sind, sondern die Namen von Variablen.Skript 1 erledigt das für Sie.Das zweite Skript ist wahrscheinlich eine bessere Möglichkeit, sich Ihr Problem vorzustellen.Mithilfe einer JMP-Liste können Sie mithilfe von Indizes auf den Variablenwert verweisen
names default to here(1);
dt=current data table();
A1 = "44";
A2 = "47";
A3 = "50";
For( i=1, i<=3, i++,
foundlot = "A" || char(i); Show (foundlot);
Eval(Parse(EvalInsert("\[dt << Select Where(:LOT == ^foundlot^, current selection("extend") ) ;]\")));
);
dt << colors( "red");
// or
names default to here(1);
dt=current data table();
aList = {"44", "47", "50" };
For( i=1, i<=3, i++,
dt << Select Where( :Lot == aList[i], current selection("extend"));
);
dt << colors( "red");
Das hat sehr gut funktioniert. Dankeschön!