Collect、Clear、および ClearCollect 関数
+コレクションの作成とクリアおよび任意のデータ ソースへのレコードの追加を行います。
Collect
適用対象: キャンバス アプリ カード Dataverse ローコード プラグイン Power Platform CLI デスクトップ流れる
Collect 関数は、データ ソースにレコードを追加します。 次の項目を追加できます。
- 1 つの値: 値は新しいレコードの Value フィールドに配置されます。 その他のプロパティはすべて blank のままになります。
- レコード: 指定した各プロパティは、新しいレコードの対応するプロパティに配置されます。 その他のプロパティはすべて空白のままになります。
- テーブル: テーブルの各レコードは、前述のように、データ ソースの個別のレコードとして追加されます。 テーブルが入れ子になったテーブルとしてはレコードに追加されることはありません。 これを行うには、先にレコードでテーブルをラップします。
コレクションに対して使用した場合は、必要に応じて追加の列が作成されます。 その他のデータ ソースの列はデータ ソースによって固定されており、新しい列を追加することはできません。
データ ソースがまだ存在しない場合は、コレクションが作成されます。
コレクションは、グローバル変数を保持するためや、データ ソースの一時的なコピーを作成するために、使用されることがあります。 キャンバス アプリでは基本的に、ユーザーがアプリを操作すると、数式が自動的に再計算されます。 コレクションでは再計算されません。そのため、コレクションを使うと、アプリの作成が難しく、わかりにくくなる場合があります。 この方法でコレクションを使用する場合は、先に変数の使用方法を確認してください。
また、Patch 関数を使用して、データ ソースのレコードを作成することもできます。
Collect は、変更された データ ソース をテーブルとして返します。 Collect は 動作式でのみ使用できます。
Clear
適用対象: キャンバス アプリ
Clear 関数は、コレクションのすべてのレコードを削除します。 コレクションの列は残ります。
Clear は、コレクションに対してのみ動作し、その他のデータ ソースでは動作しません。 その他のデータ ソースには、RemoveIf( DataSource, true ) を使用できます。 ただし、データ ソースのストレージからすべてのレコードが削除され、他のユーザーに影響する可能性があるため、注意してください。
Remove 関数を使用すると、レコードを選択して削除できます。
Clear には戻り値がありません。 Clear は、動作の数式内でのみ使用できます。
ClearCollect
適用対象: キャンバス アプリ モデル駆動型アプリ
ClearCollect 関数は、コレクションからすべてのレコードを削除します。 次に、同じコレクションに異なるレコード セットを追加します。 ClearCollect は、1 つの関数で、Clear の後に Collect を実行します。
ClearCollect は、変更されたコレクションをテーブルとして返します。 ClearCollect は動作数式でのみ使用できます。
委任
データ ソースと共に使用する場合、これらの関数は委任できません。 データ ソースの最初の部分のみが取得され、その後にその関数が適用されます。 結果は完全なストーリーを表さない場合があります。 この制限が存在することを知らせ、可能であれば委任できる代替の選択肢に切り替えるように提案する警告が、作成時に表示される場合があります。 詳しくは、「委任の概要」を参照してください。
構文
収集( データソース, アイテム, ...)
- DataSource – 必須。 データを追加するデータ ソース。 存在しない場合は、新しいコレクションが作成されます。
- 項目 - 必須。 データ ソースに追加する 1 つ以上のレコードまたはテーブル。
クリア( コレクション )
- コレクション – 必須。 クリアするコレクション。
ClearCollect( コレクション, アイテム, ... )
- コレクション – 必須。 クリアした後にデータを追加するコレクション。
- 項目 - 必須。 データ ソースに追加する 1 つ以上のレコードまたはテーブル。
例
データ ソースのクリアとレコードの追加
次の例では、IceCream という名前のコレクションに対して消去および追加を行います。 このデータ ソースの先頭には、次の内容が含まれています。
式 | 内容 | 結果 |
---|---|---|
ClearCollect(アイスクリーム、 { フレーバー:「ストロベリー」、数量: 300 } ) | IceCream コレクションのすべてのデータをクリアし、その後、ストロベリー アイスクリームの数量を含むレコードを追加します。 | IceCream コレクションも変更されています。 |
集める(アイスクリーム、 { フレーバー: 「ピスタチオ」、数量:40 }、 { フレーバー: 「オレンジ」、数量:200 } ) | ピスタチオとオレンジ アイスクリームの数量を含む 2 つのレコードを IceCream コレクションに追加します。 | IceCream コレクションも変更されています。 |
クリア(アイスクリーム) | IceCream コレクションからすべてのレコードを削除します。 | IceCream コレクションも変更されています。 |
コレクションの作成方法の詳細な手順については、コレクションを作成および更新するを参照してください。
レコードとテーブル
これらの例では、Collect および ClearCollect へのレコードとテーブルの引数がどのように処理されるかを調べます。
計算式 | 内容 | 結果 |
---|---|---|
ClearCollect( アイスクリーム、 { フレーバー:「チョコレート」、数量: 100 }、 { フレーバー:「バニラ」、数量: 200 } ) | すべてのデータをクリアし、その後、チョコレートおよびバニラ アイスクリームの数量を含むレコードを含む IceCream コレクションに、2 つのレコードを追加します。 追加されるレコードは、関数への個別の引数として設定されます。 | IceCream コレクションも変更されています。 |
ClearCollect( アイスクリーム、テーブル( { フレーバー:「チョコレート」、数量: 100 }、 { フレーバー:「バニラ」、数量: 200 } ) ) | レコードがテーブルに結合され、単一の引数を介して渡されることを除いて、前の例と同じです。 テーブルの内容は、IceCream コレクションに追加される前にレコードごとに抽出されます。 | IceCream コレクションも変更されています。 |
ClearCollect(アイスクリーム、 { MyFavorites: Table( { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) } ) |
テーブルがレコードでラップされることを除いて、前の例と同じです。 テーブルのレコードは抽出されず、代わりにテーブル全体がレコードのセルとして追加されます。 | IceCream コレクションも変更されています。 |