はじめに
BizOptimars の井上です。
今回は、Power Apps のデータの一括登録についてご紹介したいと思います。
1 件ずつであれば、SubmitForm 関数や Patch 関数を使えば良いのですが、複数を一括で登録したい場合もありますよね。こちらの記事では、ForAll 関数と Patch 関数を組み合わせて、一括登録する方法を紹介いたします。
用意したもの
列名 | データ型 |
---|---|
タイトル | テキスト |
個数 | 数値 |
登録日 | 日付 |
コレクションの作成
次に、アプリのほうへ移ります。
今回は、コレクションに入っているデータを一括登録していきたいと思いますので、まずコレクションを作っていきます。
ボタンに以下のように Collect 関数を使った式を書いていきます。
Collect(
colData,
{
タイトル: 備品名のテキストボックス.Text,
個数: Value(個数のテキストボックス.Text),
登録日: 登録日の日付入力.SelectedDate
}
)
ここでのポイントは、データソース側とデータ型を合わせることです!
例えば、データソース側が数値型なら、コレクションに入れる段階で数値型にしておきましょう。
いくつかコレクションに追加して、ギャラリーに表示させておきます。
一括登録
では、作成したコレクションを一括登録していきます。
登録ボタンを用意して、以下のように式を書きます。
ForAll(
colData,
Patch(
備品リスト,
Defaults(備品リスト),
{
タイトル: ThisRecord.タイトル,
個数: ThisRecord.個数,
登録日: ThisRecord.登録日
}
)
)
これに少し手を加えて、ギャラリーで選択したものだけ登録するように変更してみます。
まず、ギャラリーにチェックボックスを追加します。
次に、チェックボックスの OnCheck プロパティに以下の式を入れます。
チェックされたデータを入れるための colSelect という別のコレクションを作成します。
Collect(コレクション名,ThisItem)
OnUncheck プロパティには、チェックを外した際に、該当のデータをコレクションから削除する処理を行いたいので、以下の式を入れます。
Remove(コレクション名,LookUp(コレクション名,タイトル=ThisItem.タイトル))
これでボタンを押すと、チェックを入れたものだけデータを登録することができました!
おわりに
私自身、Patch 関数に対して最初は苦手意識がありました...。
このような使い方もできて便利なので、ぜひチャレンジしてみてくださいね!
なぜかうまくいかないなというときは、Patch 関数でまずは 1 行から試していただくと良いと思います。