Q4:テーブルの行を↑↓で移動する処理のところなのですが、テーブル格納変数にテーブルを設定した後の処理がイマイチ分かりません。
Q4-1:
テーブルには0〜**までの行が与えられていて、その行の位置インデックスを減らしたり増やしたりしています。
仮に3行目を選択し、↑を押した場合はテーブルそのものの並び方が変わっているわけではないのでしょうか?<質問@>
1減らした値の2がどこかに出てきて、その数値を使うかと思っていたのですが、どこにも無いまま、行の入れ替えが行われていて不思議な感じです。
位置インデックスという概念?がつかみにくい感じですが、とりあえず、位置インデックスを減らした後、データ更新イベントにてイベント対象データをイベント内包にてテーブルに再設定しています。
その後のテーブルから発生しているメソッド「選択行を指定する」というのが何がしたいのでしょうか?<質問A>
開始と終了の行の位置を取得しその位置を同じにすることで、1行を選択しているだけのようにも見えるのですが。
開始と終了があるということは複数行の選択も出来るのかな、と思っていたのですが出来ませんでした。
A4-1:
お問い合わせありがとうございます。
> 活用編のテーブルの行を↑↓で移動する処理のところなのですがテーブル格納変数にテーブルを設定した後の処理がイマイチ分かりません。
> テーブルには0〜**までの行が与えられていて、その行の位置インデックスを減らしたり増やしたりしています。
> 仮に3行目を選択し、↑を押した場合はテーブルそのものの並び方が変わっているわけではないのでしょうか?<質問@>
テーブル格納変数に設定されたテーブルデータの、行の並び順が変わります。
「指定行の位置インデックスを1つ減らす(int)」メソッドの引数に3を与えた場合には、3行目のデータが2行目に移動し、元々2行目にあったデータは3行目に移動します。
この行データの移動はテーブル格納変数内のデータでのみ行われ、このメソッドの実行によって元々のテーブル[ID:2]が保持しているデータが変更されるわけではありません。
> 1減らした値の2がどこかに出てきて、その数値を使うかと思っていたのですがどこにも無いまま、行の入れ替えが行われていて不思議な感じです。
上述の動作はテーブル格納変数内で行われます。1減らした値の2を取得したり外部から指定する必要はありません。
> 位置インデックスという概念?がつかみにくい感じですが、とりあえず位置インデックスを減らした後、データ更新イベントにてイベント対象データをイベント内包にてテーブルに再設定しています。
位置インデックスは、行の場合は行番号、列の場合は列番号とお考えください。
テーブル[ID:2]には、テーブル格納変数の「指定行の位置インデックスを1つ減らす(int)」によって行が入れ替わったテーブルが再設定されます。
> その後のテーブルから発生しているメソッド「選択行を指定する」というのが何がしたいのでしょうか?<質問A>
テーブル[ID:2]の「テーブルデータを設定する(PFObjectTable)」メソッドを実行すると、テーブル[ID:2]の選択状態が解除されます。そこで、「↑」あるいは「↓」ボタンを押す前に選択されていた行(移動した行)を、改めて選択し直しています。
> 開始と終了の行の位置を取得しその位置を同じにすることで、1行を選択しているだけのようにも見えるのですが。
その通りです。
> 開始と終了があるということは複数行の選択も出来るのかな、と思っていたのですが出来ませんでした。
複数行の選択は可能です。このアプリケーションで複数行選択ができないのは、行選択モードが「単一要素選択」になっているためです。
ビルダーから[実行(設定可)]でアプリケーションを実行し、テーブルのいずれかの行の上で右クリック、行>行選択モード、とたどり、「単一範囲選択」あるいは「複数範囲選択」を指定すると、複数行を選択できるようになります。