Remove および RemoveIf 関数

適用対象: Canvas アプリ モデル駆動型アプリ Power Platform CLI

データ ソース から レコード を削除します。

注意

PAC CLI pac power-fx コマンド は、RemoveIf 機能に対応していません。

Description

Remove 関数

Remove 関数を使用して、1 つまたは複数の特定のレコードをデータ ソースから削除します。

コレクション の場合には、レコード全体が一致している必要があります。 レコードのコピー全部を削除する場合には、RemoveFlags.All 引数を使用します。この引数を使用しなかった場合には、レコードのコピーが 1 つだけ削除されます。

RemoveIf 関数

RemoveIf 関数を使用して、1 つの条件または一連の条件に基づき、1 つまたは複数のレコードを削除します。 各条件について、結果が true または false になるものであれば、どのような数式でも指定できます。また、データ ソースの を、名前を使って参照することもできます。 各条件はレコードごとに個別に評価され、すべての条件が true と評価された場合にそのレコードが削除されます。

RemoveRemoveIf は、変更後のデータ ソースを テーブル として返します。 これらの関数は、いずれも 動作の数式 内でのみ使用できます。

また、Clear 関数を使用して、コレクションのすべてのレコードを削除することもできます。

委任

データ ソースと共に使用する場合、これらの関数は委任できません。 データ ソースの最初の部分のみが取得され、その後にその関数が適用されます。 これは、完全なストーリーを表さない場合があります。 作成時に、この制限を知らせる警告が表示される場合があります。

委任サポート (試験段階)

RemoveIf の委任サポートは、それをサポートするデータ ソースの試験的なプレビュー (デフォルトはオフ) になりました。 データ ソースがこの機能をサポートしていない場合は、Power Apps はサーバーにクエリを送信し、フィルター式に一致するすべてのデータを、500、2000、またはデータ ページ サイズのいずれかの最大値まで取得します。 次に、サーバーへの個別の呼び出しで、これらの各レコードに対して削除操作を実行します。

構文

Remove( DataSource, Record1 [, Record2, ... ] [, RemoveFlags.All ] )

  • DataSource – 必須。 削除の対象となるレコードが含まれるデータ ソース。
  • Record(s) – 必須。 削除する 1 つまたは複数のレコード。
  • RemoveFlags.All – オプション。 コレクションでは、同じレコードが複数存在することがあります。 レコードのコピーをすべて削除するために、RemoveFlags.All 引数を追加できます。

Remove( DataSource, Table [, RemoveFlags.All ] )

  • DataSource – 必須。 削除の対象となるレコードが含まれるデータ ソース。
  • Table – 必須。 削除するレコードのテーブル。
  • RemoveFlags.All – オプション。 コレクションでは、同じレコードが複数存在することがあります。 レコードのコピーをすべて削除するために、RemoveFlags.All 引数を追加できます。

RemoveIf( DataSource, Condition [, ... ] )

  • DataSource – 必須。 削除の対象となるレコードが含まれるデータ ソース。
  • Condition(s) – 必須。 削除の対象とするレコードについて評価結果が true となる数式。 数式では、DataSource の列名を使用できます。 複数の Condition を指定する場合、削除の対象とするレコードについて、評価結果がすべて true となる必要があります。

例 - 単一の数式

ここで紹介する例では、IceCream という名前のデータ ソースの 1 つ以上のレコードを削除します。このデータ ソースは次のテーブルのデータから始まります。

IceCream の例。

サンプル レコードを含むコレクションを作成する

このデータでコレクションを作成します。

  1. Button コントロールを挿入します。

  2. button コントロールの OnSelect プロパティを次の式に設定します。

    ClearCollect( IceCream,
                  { ID: 1, Flavor: "Chocolate",  Quantity: 100 },
                  { ID: 2, Flavor: "Vanilla",    Quantity: 200 },
                  { ID: 3, Flavor: "Strawberry", Quantity: 300 }
    )
    
  3. Alt キーを押しながら、ボタンを選択します。

数式を使用してコレクションからサンプル レコードを削除する

Description Result
Remove( IceCream,
LookUp( IceCream, Flavor="Chocolate" ))
データ ソースの Chocolate レコードを削除します。 Vanilla と Strawberry の結果

IceCream データ ソースの内容が変更されました。
Remove( IceCream,
LookUp( IceCream, Flavor="Chocolate" ), LookUp( IceCream, Flavor="Strawberry" ) )
データ ソースから 2 つのレコードを削除します。 Vanilla のみの結果

IceCream データ ソースの内容が変更されました。
RemoveIf( IceCream, Quantity > 150 ) Quantity の値が 150 よりも大きいレコードを対象として削除を実行します。 Chocolate のみの結果

IceCream データ ソースの内容が変更されました。
RemoveIf( IceCream, Quantity > 150, Left( Flavor, 1 ) = "S" ) Quantity の値が 150 よりも大きく、FlavorS で始まるレコードを対象として削除を実行します。 Chocolate と Vanilla の結果


IceCream データ ソースの内容が変更されました。
RemoveIf( IceCream, true ) データ ソースからすべてのレコードを削除します。 非 IceCream の結果

IceCream データ ソースの内容が変更されました。

この例では、Gallery コントロール を使用してテーブル内のレコードを一覧表示します。 次に、Remove 関数を使用して、アイテムを選択して削除します。

サンプル データの準備

この例では、サンプルアプリとデータ を持つ Microsoft Dataverse で利用可能な 取引先担当者 テーブル。 環境を作成する とき、サンプル アプリおよびデータを展開できます。 代わりに、その他のデータ ソースを使用することもできます。

この例では、ギャラリーの外のボタンを使用してアイテムを削除します。

  1. 電話レイアウトを使用して、新しい空白のキャンバス アプリ を作成します。

    電話レイアウトを使用した、新しい空白のキャンバス アプリ。

  2. 左側のウィンドウから、挿入を選択します。

  3. 垂直ギャラリーを選択します。
    Gallery コントロールが画面に追加されます。

    挿入ツール ウィンドウを使用して、垂直ギャラリー コントロールを追加します。

  4. 使用可能なデータ ソースからデータ ソースを選択できるデータ ソースを選択するよう要求されます。
    たとえば、取引先担当者 テーブルを選択して、次の サンプルデータ を使用します:

    ギャラリーに表示する取引先担当者テーブルを選択します。

    ギャラリーには、このテーブルのアイテムが表示されます。

    連絡先テーブルを表示するギャラリーが追加されました。

  5. 左側のウィンドウから Button コントロールを挿入します。

    挿入ツール ウィンドウを使用して、ボタン コントロールを追加します。

  6. 追加されたボタンをギャラリー アイテムの下に移動します。

    ボタンを移動します。

  7. ボタンのテキスト プロパティをレコードを削除に更新します。 使用したいテキストを使用することもできます。

    ボタンの名前を変更します。

  8. このボタン コントロールの OnSelect プロパティを次の式に設定します。

    Remove( Contacts, Gallery1.Selected )
    

    ボタン コントロールの OnSelect プロパティを設定します。

    ギャラリー コントロールにより、Selected プロパティを使用し、現在選択されているレコードが使用可能になります。 Remove 関数はこの選択されたレコードを参照し、削除します。

  9. 右上の Play ボタンを使用するか、またはキーボードの F5 キーを押して、アプリをプレビューします。

    アプリをプレビューします。

  10. この例の Nancy のレコードなど、 削除するレコードを選択します。

    レコードを選択します。

  11. レコードの削除を選択します。

    Nancy レコードがない取引先担当者のギャラリーが削除されました。

    ボタンを選択すると、選択したレコードが削除されます (この例では、Nancy のレコード)。

  12. アプリのプレビューを閉じます。

    チップ

    Play ボタンまたは F5 キーを使用してアプリのプレビューを使用する代わりに、Alt キー を使用して、代替動作を使用することもできます。

この例では、ギャラリー内に配置されたアイコンを使用してアイテムを削除します。

サンプル データを含むコレクションを作成する

既に サンプル データを準備 している場合、この手順をスキップして、ギャラリー内のごみ箱のアイコン に移動します。

  1. 画面に Button コントロールを追加します。

  2. 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" }
    )
    
  3. Alt キーを押しながら、ボタンを選択します。

次の例で使用できるサンプル コレクションが作成されます。

  1. 電話レイアウトを使用して、新しい空白のキャンバス アプリ を作成します。

    電話レイアウトを使用した、新しい空白のキャンバス アプリ。

  2. 左側のウィンドウから、挿入を選択します。

  3. 垂直ギャラリーを選択します。
    Gallery コントロールが画面に追加されます。

    挿入ツール ウィンドウを使用して、垂直ギャラリー コントロールを追加します。

  4. 使用可能なデータ ソースからデータ ソースを選択できるデータ ソースを選択するよう要求されます。
    たとえば、取引先担当者 テーブルを選択して、次の サンプルデータ を使用します:

    ギャラリーに表示する取引先担当者テーブルを選択します。

    コレクション を作成した場合、代わりにコレクションを選択してください。

    取引先担当者のサンプル コレクション。

  5. ギャラリーの最初のアイテム内でコントロールを選択します。

    次の手順でアイテムがギャラリーのテンプレート外ではなく、ギャラリーのテンプレート内に挿入されるようにするには、次に進む前にこの手順に従ってください。

    ギャラリーの先頭レコードを選択します。

  6. 左側のウィンドウからアイコンの追加を選択します。

    挿入ツール ウィンドウを使用して、アイコン コントロールを追加します。

    Note

    アイコンの追加により、ギャラリーの左側に + を挿入すると、ギャラリー内の各アイテムごとに複製されます。

  7. 最初のアイテムにおいて、アイコンを画面の右側に移動します。

    アイコンを移動します。

  8. アイコンの Icon プロパティを選択し、次の式に設定して、アイコン画像をごみ箱アイコンとして更新します。

    Icon.Trash
    

    Note

    Icon. 接頭辞は、数式をアクティブに編集しているときにのみ表示されます。

    アイコンをごみ箱アイコンに変更します。

  9. OnSelect プロパティを次の式に設定します。

    Remove( [@Contacts], ThisItem )
    

    Note

    この例にある グローバル曖昧性解消演算子[@...]Contacts テーブルを使用するサンプルデータと使用して、1 対多 関係との競合を避ける必要があります。 リストまたは SQL Server などのデータ ソースを使用する場合、グローバル曖昧性除去演算子の使用は必須ではありません。

    ごみ箱アイコンに対する OnSelect。

  10. 右上の Play ボタンを使用するか、またはキーボードの F5 キーを押して、アプリをプレビューします。

  11. たとえば、Maria のように、レコードの横にあるごみ箱アイコンを選択します。

    取引先担当者の 1 つが削除されたギャラリー。

    レコードは削除されました。

    削除されたレコード。

  12. アプリのプレビューを閉じます。