Q5:テーブルサブセットフィルタのメソッド「選択対象行を取得する」は、なぜ数値ではなく文字列を返す仕様になっているのでしょうか?
Q5-1:
テーブルサブセットフィルタについて質問いたします。
テーブル格納変数、テーブルサブセットフィルタ、サブルーチンの各コンポーネントを準備して、テーブル格納変数の内容をサブセットフィルタに設定しています。
サブルーチンのアクションイベントにサブセットフィルタを接続し、メソッド「列データの文字列で行を選択する」にて特定行を選択させました。同じく、サブセットフィルタ接続にてメソッド「選択対象行を取得する」を処理。次に、テーブル格納変数を接続して、メソッド「選択位置(行)を設定する」にて、上記のメソッド処理結果(選択対象行を取得する)を設定しようとしましたが、これが設定できませんでした。
調査した所、サブセットフィルタのメソッド「選択対象行を取得する」では、処理結果として「文字列」を返すので設定できないことが解りました。しかしながら、似たような事例として例えばテーブル格納変数のメソッドの「行の選択位置を取得する」では、ちゃんと「数値」を返してくれます。
テーブルサブセットフィルタのメソッド「選択対象行を取得する」は、なぜ数値ではなく文字列を返す仕様になっているのでしょうか?
A5-1:
テーブルサブセットフィルタのメソッド「選択対象行を取得する」の戻り値はPFObjectList型となっておりまして、選択した行位置(数値)のリストを返します。これは、「列データの文字列で行を選択する」などのメソッド実行の結果、複数の行が選択されることがあるからです。
リストの中の行位置を使って処理をしたい場合は、リスト格納変数などに入れて値を取得する必要があります。ただし、リストが空の場合もありますので、処理の内容によっては要素数などを事前にチェックする必要もあります。
一方、テーブル格納変数のメソッド「行の選択位置を取得する」は単一の値でよいため、数値を返すようにしております。
なお、テーブルサブセットフィルタの使い方については、サンプルドキュメント「テーブルデータ操作サンプル」の「2.13 部分テーブルの取得」に例が載っていますので必要に応じてご参照いただければと思います。