列の名前をリスト「selectedDataPinColumn」に保存する列ダイアログがあります。 ループを使用してその名前が対応する列番号を見つけ、見つかった番号に基づいて列を参照しています。これは機能します。 テーブル上で以前に選択したものに追加しようとしていますが、ハードコードされた列名以外のものでは Select Where 関数を動作させることができないようです。これは動的である必要があるため、機能しません。 以下にメインループ 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);
);
);
);Column() を AsColumn() または Column()[] または Column()[Row()] に変更するだけで十分かもしれません。 また、何をしているかによっては、コードを簡素化する方法がかなりたくさんあるかもしれません (Or() の代わりに Contains、For... の代わりに For Each を使用します)。
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"));