仕事でPower Appsをいじっているので覚書を残していきます。
今回は明細登録画面を作成したときの覚書を記します。
処理概要
ギャラリーコントロールとコレクションを使用して実現させます。
コレクションとは
コレクションとはPowerAppsを起動しているときに使う一時的なデータベースでこれをコレクションと呼びます。
手順
- 1. コレクションを用意する
- コレクションのカラム列にはユーザーにデータ入力させたいデータテーブルの任意の列を疑似的に作ります。
- 2. 画面にギャラリーコントロールを追加する
- 追加したギャラリーは手順1で用意したコレクションに接続させます。
- 3. OnChangeプロパティなどの動作プロパティでコーディング
- ユーザーが項目を編集するごとに、つまりonChangeプロパティなどでコレクションにCRUD処理を行うようコーディングします。
- 4. Patch文でデータベースにCRUD処理をかける
- Patch文とForAll関数を使用してコレクションに保存した明細行のデータを、データベースの対象テーブルにCRUD処理をかけます。
- この処理はボタンを用意してOnSelectプロパティなどに記述しましょう。
行番号の採番について
以下の記事に手順を記載しました。
上記記事は既存行呼出時の採番については考慮していない記事になります。
行ごとの操作について
チェックボックスでチェックをつけた行に対して別画面で値を取得したい、等の行ごとの操作はコレクションにフラグを保存し、フラグの値に基づいて各プロパティで操作すると良いと思います。
Defaultプロパティに入れる値に注意
上記実装を行う場合、Defaultプロパティ(ラベルコントロールならTextプロパティ)に入れる値に注意しましょう。
これは、Power Appsの開発は「効果を与える側」のイベントドリブン型ではなく「効果を与えられる側」に処理を記述する開発であるからです。
明細画面に値を受け渡す検索ウィンドウを実装する場合
変数の値を更新してこの機能を実装しようとした場合、onChangeプロパティは動作しないので注意しましょう。
###登録済データを呼び出す
LookUp関数の結果をForAll関数を使用してコレクションにPatchすればOKです。
ForAll関数について
#参考
- Power Appsでデータソースを操作する関数の一覧としては以下が参考になります。