Remove および RemoveIf 関数
適用対象: キャンバス アプリ モデル駆動型アプリ Power Platform CLI
注意
PAC CLI pac power-fxコマンド は RemoveIf 関数をサポートしていません。
Description
Remove 関数
Remove 関数を使用して、1 つまたは複数の特定のレコードをデータ ソースから削除します。
コレクション の場合には、レコード全体が一致している必要があります。 レコードのコピー全部を削除する場合には、RemoveFlags.All 引数を使用します。この引数を使用しなかった場合には、レコードのコピーが 1 つだけ削除されます。
RemoveIf 関数
RemoveIf 関数を使用して、1 つの条件または一連の条件に基づき、1 つまたは複数のレコードを削除します。 各条件について、結果が true または false になるものであれば、どのような数式でも指定できます。また、データ ソースの 列 を、名前を使って参照することもできます。 各条件はレコードごとに個別に評価され、すべての条件が true と評価された場合にそのレコードが削除されます。
Remove および RemoveIf は、変更された データ ソース を テーブルとして返します。 これらの関数は、いずれも 動作の数式 内でのみ使用できます。
また、Clear 関数を使用して、コレクションのすべてのレコードを削除することもできます。
委任
データ ソースと共に使用する場合、これらの関数は委任できません。 データ ソースの最初の部分のみが取得され、その後にその関数が適用されます。 これは、完全なストーリーを表さない場合があります。 作成時に、この制限を知らせる警告が表示される場合があります。
委任サポート (試験段階)
RemoveIf の委任サポートは、それをサポートするデータ ソースの試験的なプレビュー (デフォルトはオフ) になりました。 データ ソース がこの機能をサポートしていない場合、Power Apps はサーバーにクエリを送信し、フィルター式に一致するすべてのデータを、500、2000、またはデータ ページ サイズのいずれかの最大値まで取得します。 次に、サーバーへの個別の呼び出しで、これらの各レコードに対して削除操作を実行します。
構文
削除( データソース, レコード1 [, レコード2, ... ] [, RemoveFlags.All ] )
- DataSource – 必須。 削除の対象となるレコードが含まれるデータ ソース。
- 記録 – 必須。 削除する 1 つまたは複数のレコード。
- RemoveFlags.All – オプション。 コレクションでは、同じレコードが複数存在することがあります。 レコードのコピーをすべて削除するために、RemoveFlags.All 引数を追加できます。
Remove( データソース, テーブル [, RemoveFlags .すべて ] )
- DataSource – 必須。 削除の対象となるレコードが含まれるデータ ソース。
- 表 – 必須。 削除するレコードのテーブル。
- RemoveFlags.All – オプション。 コレクションでは、同じレコードが複数存在することがあります。 レコードのコピーをすべて削除するために、RemoveFlags.All 引数を追加できます。
RemoveIf( データソース, 条件 [, ... ] )
- DataSource – 必須。 削除の対象となるレコードが含まれるデータ ソース。
- 条件 – 必須。 削除の対象とするレコードについて評価結果が true となる数式。 数式では、DataSource の列名を使用できます。 複数の Condition を指定する場合、削除の対象とするレコードについて、評価結果がすべて true となる必要があります。
例 - 単一の数式
ここで紹介する例では、IceCream という名前のデータ ソースの 1 つ以上のレコードを削除します。このデータ ソースは次のテーブルのデータから始まります。
サンプル レコードを含むコレクションを作成する
このデータでコレクションを作成します。
Button コントロールを挿入します。
button コントロールの OnSelect プロパティを次の式に設定します。
ClearCollect( IceCream, { ID: 1, Flavor: "Chocolate", Quantity: 100 }, { ID: 2, Flavor: "Vanilla", Quantity: 200 }, { ID: 3, Flavor: "Strawberry", Quantity: 300 } )
Alt キーを押しながら、ボタンを選択します。
数式を使用してコレクションからサンプル レコードを削除する
式 | Description | Result |
---|---|---|
削除(アイスクリーム、 LookUp( IceCream, Flavor="Chocolate" )) |
データ ソースの Chocolate レコードを削除します。 | IceCream データ ソースの内容が変更されました。 |
削除(アイスクリーム、 LookUp( IceCream, Flavor="Chocolate" ), LookUp( IceCream, Flavor="Strawberry" ) ) |
データ ソースから 2 つのレコードを削除します。 | IceCream データ ソースの内容が変更されました。 |
RemoveIf( アイスクリーム、数量 > 150 ) | Quantity の値が 150 よりも大きいレコードを対象として削除を実行します。 | IceCream データ ソースの内容が変更されました。 |
RemoveIf( アイスクリーム、数量 > 150、左( フレーバー、1 ) = "S" ) | Quantity の値が 150 よりも大きく、Flavor が S で始まるレコードを対象として削除を実行します。 | IceCream データ ソースの内容が変更されました。 |
RemoveIf( アイスクリーム、true ) | データ ソースからすべてのレコードを削除します。 | IceCream データ ソースの内容が変更されました。 |
例 - ギャラリーの外のボタンを削除する
この例では、Gallery コントロール を使用してテーブル内のレコードを一覧表示します。 次に、Remove 関数を使用して、アイテムを選択して削除します。
サンプル データの準備
この例では、サンプルアプリとデータ を持つ Microsoft Dataverse で利用可能な 取引先担当者 テーブル。 環境を作成する とき、サンプル アプリおよびデータを展開できます。 代わりに、その他のデータ ソースを使用することもできます。
ギャラリーの外のボタンを削除する
この例では、ギャラリーの外のボタンを使用してアイテムを削除します。
電話レイアウトを使用して、新しい空白のキャンバス アプリ を作成します。
左側のウィンドウから、挿入を選択します。
垂直ギャラリーを選択します。
Gallery コントロールが画面に追加されます。使用可能なデータ ソースからデータ ソースを選択できるデータ ソースを選択するよう要求されます。
たとえば、取引先担当者 テーブルを選択して、次の サンプルデータ を使用します:ギャラリーには、このテーブルのアイテムが表示されます。
左側のウィンドウから Button コントロールを挿入します。
追加されたボタンをギャラリー アイテムの下に移動します。
ボタンのテキスト プロパティをレコードを削除に更新します。 使用したいテキストを使用することもできます。
このボタン コントロールの OnSelect プロパティを次の式に設定します。
Remove( Contacts, Gallery1.Selected )
ギャラリー コントロールにより、Selected プロパティを使用し、現在選択されているレコードが使用可能になります。 Remove 関数は、この選択されたレコードを参照して削除します。
右上の Play ボタンを使用するか、またはキーボードの F5 キーを押して、アプリをプレビューします。
この例の Nancy のレコードなど、 削除するレコードを選択します。
レコードの削除を選択します。
ボタンを選択すると、選択したレコードが削除されます (この例では、Nancy のレコード)。
アプリのプレビューを閉じます。
チップ
Play ボタンまたは F5 キーを使用してアプリのプレビューを使用する代わりに、Alt キー を使用して、代替動作を使用することもできます。
例 - ギャラリー内のごみ箱のアイコン
この例では、ギャラリー内に配置されたアイコンを使用してアイテムを削除します。
サンプル データを含むコレクションを作成する
既に サンプル データを準備 している場合、この手順をスキップして、ギャラリー内のごみ箱のアイコン に移動します。
画面に Button コントロールを追加します。
OnSelect プロパティを次の式に設定します。
ClearCollect( SampleContacts, { 'Full Name': "Yvonne McKay (sample)", 'Primary Email': "someone_a@example.com" }, { 'Full Name': "Susanna Stubberod (sample)", 'Primary Email': "someone_b@example.com" }, { 'Full Name': "Nancy Anderson (sample)", 'Primary Email': "someone_c@example.com" }, { 'Full Name': "Maria Campbell (sample)", 'Primary Email': "someone_d@example.com" }, { 'Full Name': "Robert Lyon (sample)", 'Primary Email': "someone_e@example.com" }, { 'Full Name': "Paul Cannon (sample)", 'Primary Email': "someone_f@example.com" }, { 'Full Name': "Rene Valdes (sample)", 'Primary Email': "someone_g@example.com" } )
Alt キーを押しながら、ボタンを選択します。
次の例で使用できるサンプル コレクションが作成されます。
ギャラリー内のごみ箱のアイコン
電話レイアウトを使用して、新しい空白のキャンバス アプリ を作成します。
左側のウィンドウから、挿入を選択します。
垂直ギャラリーを選択します。
Gallery コントロールが画面に追加されます。使用可能なデータ ソースからデータ ソースを選択できるデータ ソースを選択するよう要求されます。
たとえば、取引先担当者 テーブルを選択して、次の サンプルデータ を使用します:コレクション を作成した場合、代わりにコレクションを選択してください。
ギャラリーの最初のアイテム内でコントロールを選択します。
次の手順でアイテムがギャラリーのテンプレート外ではなく、ギャラリーのテンプレート内に挿入されるようにするには、次に進む前にこの手順に従ってください。
左側のウィンドウからアイコンの追加を選択します。
Note
アイコンを追加 すると、ギャラリーの左側にアイコンが挿入され、ギャラリー内の各アイテムに対して複製されます。 +
最初のアイテムにおいて、アイコンを画面の右側に移動します。
アイコンの Icon プロパティを選択し、次の式に設定して、アイコン画像をごみ箱アイコンとして更新します。
Icon.Trash
Note
Icon. 接頭辞は、数式をアクティブに編集しているときにのみ表示されます。
OnSelect プロパティを次の式に設定します。
Remove( [@Contacts], ThisItem )
Note
この例にある グローバル曖昧性解消演算子[@...] を Contacts テーブルを使用するサンプルデータと使用して、1 対多 関係との競合を避ける必要があります。 リストや SQL Server テーブルなどのデータ ソースを使用する場合、グローバル曖昧性除去演算子 の使用は必須ではありません。
右上の Play ボタンを使用するか、またはキーボードの F5 キーを押して、アプリをプレビューします。
たとえば、Maria のように、レコードの横にあるごみ箱アイコンを選択します。
レコードは削除されました。
アプリのプレビューを閉じます。