Power Apps の Collect、Clear、および ClearCollect 関数

+コレクションの作成とクリアおよび任意のデータ ソースへのレコードの追加を行います。

内容

Collect

Collect 関数は、データ ソースにレコードを追加します。 次の項目を追加できます。

  • 1 つの値: 値は新しいレコードの Value フィールドに配置されます。 その他のプロパティはすべて blank のままになります。
  • レコード: 指定した各プロパティは、新しいレコードの対応するプロパティに配置されます。 その他のプロパティはすべて空白のままになります。
  • テーブル: テーブルの各レコードは、前述のように、データ ソースの個別のレコードとして追加されます。 テーブルが入れ子になったテーブルとしてはレコードに追加されることはありません。 これを行うには、先にレコードでテーブルをラップします。

コレクションに対して使用した場合は、必要に応じて追加のが作成されます。 その他のデータ ソースの列はデータ ソースによって固定されており、新しい列を追加することはできません。

データ ソースがまだ存在しない場合は、コレクションが作成されます。

コレクションは、グローバル変数を保持するためや、データ ソースの一時的なコピーを作成するために、使用されることがあります。 キャンバス アプリでは基本的に、ユーザーがアプリを操作すると、数式が自動的に再計算されます。 コレクションでは再計算されません。そのため、コレクションを使うと、アプリの作成が難しく、わかりにくくなる場合があります。 この方法でコレクションを使用する場合は、先に変数の使用方法を確認してください。

また、Patch 関数を使用して、データ ソースのレコードを作成することもできます。

Collect は、変更されたデータ ソースをテーブルとして返します。 Collect は、動作の数式内でのみ使用できます。

Clear

Clear 関数は、コレクションのすべてのレコードを削除します。 コレクションの列は残ります。

Clear は、コレクションに対してのみ動作し、その他のデータ ソースでは動作しません。 その他のデータ ソースには、RemoveIf( DataSource, true ) を使用できます。 ただし、データ ソースのストレージからすべてのレコードが削除され、他のユーザーに影響する可能性があるため、注意してください。

Remove 関数を使用すると、レコードを選択して削除できます。

Clear には、戻り値がありません。 Clear は、動作の数式内でのみ使用できます。

ClearCollect

ClearCollect 関数は、コレクションからすべてのレコードを削除します。 次に、同じコレクションに異なるレコード セットを追加します。 ClearCollect は、1 つの関数で、Clear の後に Collect を実行します。

ClearCollect は、変更されたコレクションをテーブルとして返します。 ClearCollect は、動作の数式内でのみ使用できます。

委任

データ ソースと共に使用する場合、これらの関数は委任できません。 データ ソースの最初の部分のみが取得され、その後にその関数が適用されます。 結果は完全なストーリーを表さない場合があります。 この制限が存在することを知らせ、可能であれば委任できる代替の選択肢に切り替えるように提案する警告が、作成時に表示される場合があります。 詳しくは、「委任の概要」を参照してください。

構文

Collect( DataSource, Item, ... )

  • DataSource – 必須。 データを追加するデータ ソース。 存在しない場合は、新しいコレクションが作成されます。
  • Item(s) - 必須。 データ ソースに追加する 1 つ以上のレコードまたはテーブル。

Clear( Collection )

  • Collection - 必須。 クリアするコレクション。

ClearCollect( Collection, Item, ... )

  • Collection - 必須。 クリアした後にデータを追加するコレクション。
  • Item(s) - 必須。 データ ソースに追加する 1 つ以上のレコードまたはテーブル。

データ ソースのクリアとレコードの追加

次の例では、IceCream という名前のコレクションに対して消去および追加を行います。 このデータ ソースの先頭には、次の内容が含まれています。

サンプル データ ソース。

内容 結果
ClearCollect( IceCream, { Flavor: "Strawberry", Quantity: 300 } ) IceCream コレクションのすべてのデータをクリアし、その後、ストロベリー アイスクリームの数量を含むレコードを追加します。 1 レコードのテーブル

IceCream コレクションも変更されています。
Collect( IceCream, { Flavor: "Pistachio", Quantity: 40 }, { Flavor: "Orange", Quantity: 200 } ) ピスタチオとオレンジ アイスクリームの数量を含む 2 つのレコードを IceCream コレクションに追加します。 2 つのレコードのテーブル

IceCream コレクションも変更されています。
Clear( IceCream ) IceCream コレクションからすべてのレコードを削除します。 空のテーブル

IceCream コレクションも変更されています。

コレクションの作成方法の詳細な手順については、コレクションを作成および更新するを参照してください。

レコードとテーブル

これらの例では、Collect および ClearCollect へのレコードとテーブルの引数がどのように処理されるかを調べます。

計算式 内容 結果
ClearCollect( IceCream, { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) すべてのデータをクリアし、その後、チョコレートおよびバニラ アイスクリームの数量を含むレコードを含む IceCream コレクションに、2 つのレコードを追加します。 追加されるレコードは、関数への個別の引数として設定されます。 コレクションに追加された Chocolate と Vanilla のレコード

IceCream コレクションも変更されています。
ClearCollect( IceCream, Table( { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) ) レコードがテーブルに結合され、単一の引数を介して渡されることを除いて、前の例と同じです。 テーブルの内容は、IceCream コレクションに追加される前にレコードごとに抽出されます。 Chocolate と Vanilla レコードがコレクションに追加され、変更されました

IceCream コレクションも変更されています。
ClearCollect( IceCream,
{ MyFavorites: Table( { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) } )
テーブルがレコードでラップされることを除いて、前の例と同じです。 テーブルのレコードは抽出されず、代わりにテーブル全体がレコードのセルとして追加されます。 Chocolate と Vanilla のレコードがコレクションに追加され、テーブルがレコードにラップされて変更されました

IceCream コレクションも変更されています。