0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Apps におけるデータ操作の関数について解説 ~その② Patch Remove RemoveIf ClearCollect~

Posted at

はじめに

この記事ではPower Appsのアプリ内におけるデータ操作に関する関数について解説していきます。
データの読み込みや更新、削除においてデータの抽出方法はどの関数が最適か説明していきます。

データ操作に関する関数のおおまかな分類

1. データの取得
 LookUp First Last Filter Search
2. データのフィルタリング・並び替え
 Filter Sort SortByColumns
3. データの追加
 Collect Patch ForAll
4. データの更新
 Patch Update UpdateIf
5. データの削除
 Remove RemoveIf Clear
6. データの一時保存
 Collect ClearCollect
7. フォームとの連携
 SubmitForm EditForm NewForm

LookUp Filter Collectについては以下の記事で解説しています。

Patch関数

Patch 関数は、データソースやコレクションのデータを更新・追加するための関数です。

基本的な書き方
Patch(データソース, レコードまたは条件, 変更内容)
  • レコードを追加したい場合
新しくレコードを作成
Patch(データソース, Defaults(データソース), {レコード})

ここに 社員名簿テーブル があります。
新しい社員が入ったのでレコードを追加したいと思います。
image.png

新しくレコードを作成
Patch(
    社員名簿テーブル,
    Defaults(社員名簿テーブル),
    {
        : "西田",
        : "健司",
        部署: "マーケティング部",
        性別: "男"
    }
)

//フルネームはテーブル上で    を結合させた計算式となっているため設定無し

ボタンの OnSelect に設定して、この関数を作動させます。

image.png

最終行に新しいレコードが追加されました。

  • 特定のレコードを更新したい場合
特定のレコードを更新
Patch(データソース, テーブルに含まれるレコード, 変更内容)

テーブルに含まれるレコードLookUp 関数で取得することが可能です。
先ほど作成した新しいレコードの部署を 営業部 に変更してみましょう。

特定のレコードを更新
Patch(
    社員名簿テーブル,
    LookUp(
        社員名簿テーブル,
        フルネーム = "西田 健司"
    ),
    {部署: "営業部"}
)

レコード作成時は マーケティング部 でしたが 営業部 に更新されました。
image.png

Patch 関数のまとめ:bulb:

  • Patch 関数はレコードの更新や追加を行うことができる関数
  • LookUp 関数を使用することで特定のレコードの更新が可能
  • Defaults 関数を使用すれば新しくレコードを追加することが可能

Remove関数

Remove 関数は、データソースやコレクションから特定のデータを削除するための関数です。

基本的な書き方
Remove(データソース, 削除するレコード)

//削除するレコードは LookUp などで指定が可能
  • 特定のレコードを削除したい場合
    先ほど Patch 関数で追加した 西田 健司 さんのレコードを削除してみたいと思います。

image.png

関数を実行します。

レコードの削除
Remove(
    社員名簿テーブル,
    LookUp(
        社員名簿テーブル,
        フルネーム = "西田 健司"
    )
)

分かりづらいかもしれませんが、指定したレコードが削除されました。

image.png

RemoveIf関数

RemoveIf 関数は、条件に一致するすべてのレコードをデータソースやコレクションから削除するための関数です。

基本的な書き方
RemoveIf(データソース, 条件)

では、先ほどの 社員名簿テーブル から部署が 総務部 の人をフィルターしてレコードを削除してみたいと思います。

image.png

条件を指定してレコードを削除
RemoveIf(
    社員名簿テーブル,
    部署 = "総務部"
)

無事に2個のレコードの削除が実行されました。
image.png

Remove RemoveIf 関数のまとめ:bulb:

  • Remove 関数は LookUp を使用して 特定のレコードを削除 することが可能
  • RemoveIf 関数は 複数のレコードを一括で削除 することが可能
  • AndOr 関数を使って複数条件を設定することも可能

警告
Remove RemoveIf 関数で削除したレコードは復活させることはできませんので、削除を実行する際は十分に気を付けてください。

ClearCollect関数

ClearCollect 関数は、コレクションをリセットし、新しいデータをセットするための関数です。

Clear 関数と Collect 関数がセットになった関数だと思っていただければ結構です。

基本的な書き方
ClearCollect(コレクション名, 新しいデータ)

社員名簿テーブル をそのまま Collection というテーブルに作成してみたいと思います。

コレクションをリセットして新しいコレクションを作成
ClearCollect(
    Collection,
    社員名簿テーブル
)

ギャラリー内の Items が Collection という名前でデータを表示させることができました。
image.png

その②まとめ:bulb:

本記事では Patch Remove RemoveIf ClearCollect 関数について紹介しました!
その他記事についても今後作成していく予定です!
ぜひご参考にしてみてください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?