Ich habe einen Spaltendialog, der den Namen einer Spalte in der Liste „selectedDataPinColumn“ speichert. Ich verwende eine Schleife, um herauszufinden, welcher Spaltennummer dieser Name entspricht, und verweise auf die Spalte basierend auf der gefundenen Nummer, was funktioniert. Ich versuche, etwas zu einer vorherigen Auswahl in der Tabelle hinzuzufügen, und es scheint mir einfach nicht zu gelingen, die Funktion „Wo auswählen“ mit irgendetwas anderem als dem fest codierten Spaltennamen zum Laufen zu bringen, was bei mir nicht funktionieren wird, da dieser dynamisch sein muss. Ich habe die Hauptschleife unten eingefügt, JMP 16.
For ( i = 1, i <= N Cols (originalTable), i++,
tempColName = Char(Column ( originalTable, i) << Get Name ());
For ( j = 1, j <= N Items (selectedDataPinColumn), j++,
If ( tempColName == Char(selectedDataPinColumn[j]),
originalTable << Select Where ( Column( originalTable, i ) == "GND" | Column (originalTable, i) == "GND & MeasI" | Column (originalTable, i) == "HIZ" | Column (originalTable, i) == "HiZ"*/, Current Selection( "Extend" ));
originalTable << Invert Row Selection();
selectedRows = originalTable << Get Selected Rows ();
selectVsandAs << Close Window();
//originalTable << Delete Rows (selectedRows);
);
);
);Es könnte ausreichen, wenn Sie Column() in AsColumn() oder Column()[] oder Column()[Row()] ändern. Abhängig davon, was Sie tun, gibt es möglicherweise auch einige Möglichkeiten, wie Sie Ihren Code vereinfachen können (Verwendung von „Contains“ anstelle von „Or()“, „For Each“ anstelle von „For...“).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
i = 1;
dt << Select Where(Contains({"JOE", "F"}, AsColumn(dt, i)), Current Selection("Extend"));
wait(1); // for demo purposes
i = 3;
dt << Select Where(Contains({"JOE", "F"}, Column(dt, i)[]), Current Selection("Extend"));