Ich habe ein eigentlich einfaches Problem, weiß aber nicht, wie ich es richtig formulieren soll.
Ich habe ein paar Variablen;
A1 = „44“;
A2 = „47“;
A3 = „50“;
//Zahlen liegen absichtlich im String-Format vor
Und eine Datentabelle, dt, in der diese Variablen neben 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 markiere, wenn sie gefunden werden, kann ich sie nicht finden.
For( i = 1, i <= 3, i++,
foundlot = "A" || Char( i );
Show( foundlot );
dt << Select Where( :LOT = foundlot ) << Colors = (5);
);
Mir ist klar, dass das Problem darin besteht, dass „foundlot“ eine Zeichenfolge „A1“, „A2“, „A3“ ... ist und die Werte 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?
Ich danke Ihnen für Ihre Hilfe!
Das hat wirklich gut funktioniert. Danke schön!
Ich glaube, dass diese beiden einfachen Skripte unten das erledigen werden, was Sie wollen.Das Problem, das Sie haben, besteht darin, dass Sie angeben müssen, dass A1, A2 und A3 keine Variablenwerte, sondern die Namen von Variablen sind.Skript 1 erledigt das für Sie.Das zweite Skript ist wahrscheinlich eine bessere Möglichkeit, über Ihr Problem nachzudenken.Durch die Verwendung 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");