Funções Remove e RemoveIf

Aplica-se a: Aplicativos de tela Aplicativos baseados em modelo CLI do Power Platform

Remove os registros de uma fonte de dados.

Observação

Os comandos pac power-fx da CLI do PAC não oferecem suporte à função RemoveIf.

Description

Função Remove

Use a função Remove para remover um ou mais registros específicos de uma fonte de dados.

Para coleções, todo o registro deve ser correspondente. Você pode usar o argumento RemoveFlags.All para remover todas as cópias de um registro; caso contrário, apenas uma cópia do registro é removida.

Função RemoveIf

Use a função RemoveIf para remover um ou mais registros com base em uma condição ou um conjunto de condições. Cada condição pode ser qualquer fórmula que resulta em true ou false e pode fazer referência às colunas da fonte de dados pelo nome. Cada condição é avaliada individualmente para cada registro e o registro é removido se todas as condições são avaliadas como true.

Remove e RemoveIf retorna a fonte de dados modificada como uma tabela. Você pode usar ambas as funções somente nas fórmulas de comportamento.

Você também pode usar a função Clear para remover todos os registros em uma coleção.

Delegação

Quando usadas com uma fonte de dados, estas funções não podem ser delegadas. Somente a primeira parte da fonte de dados será recuperada e então a função será aplicada. Esse resultado pode não representar a situação completa. Um aviso pode aparecer no momento da criação para lembrar você dessa limitação.

Suporte à delegação (Experimental)

O suporte à delegação para RemoveIf agora está em Versão Prévia Experimental (padrão OFF) para fontes de dados compatíveis. Se uma fonte de dados não for compatível com esse recurso, o Power Apps enviará uma consulta ao servidor e recuperará todos os dados que correspondam à expressão do filtro até o máximo de 500, 2.000 ou o tamanho da página de dados. Em seguida, ele executará uma operação de exclusão em cada um desses registros com chamadas individuais para o servidor.

Sintaxe

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

  • DataSource - obrigatório. A fonte de dados que contém o registro ou os registros que você deseja remover.
  • Record(s) - obrigatório. O registro ou registros a serem removidos.
  • RemoveFlags.All – Opcional. Em uma coleção, o mesmo registro pode aparecer mais de uma vez. Você pode adicionar o argumento RemoveFlags.All para remover todas as cópias do registro.

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

  • DataSource - obrigatório. A fonte de dados que contém o registro ou os registros que você deseja remover.
  • Table - obrigatório. Uma tabela dos registros a serem removidos.
  • RemoveFlags.All – Opcional. Em uma coleção, o mesmo registro pode aparecer mais de uma vez. Você pode adicionar o argumento RemoveFlags.All para remover todas as cópias do registro.

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

  • DataSource - obrigatório. A fonte de dados que contém o registro ou os registros que você deseja remover.
  • Condition(s) - obrigatório. Uma fórmula que é avaliada como true para o registro ou registros a serem removidos. Você pode usar nomes de coluna de DataSource na fórmula. Se você especificar vários Conditions, todas devem ser avaliadas como true para o registro ou registros serem removidos.

Exemplos - fórmulas únicas

Nesses exemplos, você removerá um ou mais registros em uma fonte de dados chamada IceCream e que começa com os dados nesta tabela:

Exemplo IceCream.

Criar uma coleção com registros de amostra

Para criar uma coleção com esses dados:

  1. Insira um controle Button.

  2. Defina a propriedade OnSelect do controle button como a fórmula abaixo:

    ClearCollect( IceCream,
                  { ID: 1, Flavor: "Chocolate",  Quantity: 100 },
                  { ID: 2, Flavor: "Vanilla",    Quantity: 200 },
                  { ID: 3, Flavor: "Strawberry", Quantity: 300 }
    )
    
  3. Selecione o botão enquanto mantém pressionado a tecla Alt:

Remova os registros de amostra da coleção usando uma fórmula

Fórmula Description Result
Remove( IceCream,
LookUp( IceCream, Flavor="Chocolate" ))
Remove o registro Chocolate da fonte de dados. Resultado com Vanilla e Strawberry.

A fonte de dados IceCream foi modificada.
Remove( IceCream,
LookUp( IceCream, Flavor="Chocolate" ), LookUp( IceCream, Flavor="Strawberry" ) )
Remove os dois registros da fonte de dados. Resultado apenas com Vanilla.

A fonte de dados IceCream foi modificada.
RemoveIf( IceCream, Quantity > 150 ) Remove os registros que possuem Quantity maior do que 150. Resultado apenas com Chocolate.

A fonte de dados IceCream foi modificada.
RemoveIf( IceCream, Quantity > 150, Left( Flavor, 1 ) = "S" ) Remove os registros que possuem Quantity maior do que 150 e Flavor começando com S. Resultado com Chocolate e Vanilla.


A fonte de dados IceCream foi modificada.
RemoveIf( IceCream, true ) Remove os dois registros da fonte de dados. Resultado com nenhum IceCream.

A fonte de dados IceCream foi modificada.

Neste exemplo, você usará um controle Gallery para listar os registros em uma tabela. E depois use função Remove para selecionar qual item remover.

Preparar para dados de exemplo

Este exemplo usa a tabela Contacts no Microsoft Dataverse disponível com os aplicativos e dados de exemplo. Você pode implantar aplicativos e dados de amostra quando você criar um ambiente. Você também pode usar qualquer outra fonte de dados.

Neste exemplo, você removerá um item usando um botão que está fora da galeria.

  1. Crie um novo aplicativo de tela em branco usando um layout de telefone.

    Um aplicativo de tela em branco usando o layout de telefone.

  2. Selecione Inserir no painel esquerdo.

  3. Selecione Galeria vertical.
    Um controle Gallery é adicionado à sua tela.

    Usando o painel de ferramentas Inserir para adicionar um controle de galeria vertical.

  4. Você é solicitado a selecionar uma fonte de dados, onde é possível selecionar uma fonte de dados nas fontes de dados disponíveis.
    Por exemplo, selecione a tabela Contacts para usar dados de exemplo:

    Seleção da tabela Contacts para exibir na galeria.

    A galeria mostra itens desta tabela:

    Galeria adicionada mostrando a tabela Contacts.

  5. Inserir um controle Button no painel esquerdo:

    Usando o painel de ferramentas Inserir para adicionar um controle de botão.

  6. Mova o botão adicionado abaixo dos itens da galeria:

    Botão Mover.

  7. Atualize a propriedade de texto do botão para Remover registro. Você também pode usar o texto de sua preferência:

    Renomear botão.

  8. Defina a propriedade OnSelect deste controle de botão para a fórmula a seguir:

    Remove( Contacts, Gallery1.Selected )
    

    Definindo a propriedade OnSelect do controle de botão.

    O controle da galeria disponibiliza o registro selecionado atualmente usando propriedade Selected. A função Remove refere-se a este registro selecionado para removê-lo.

  9. Visualize o aplicativo usando o botão Reproduzir no canto superior direito ou pressione F5 no teclado:

    Versão preliminar de aplicativo.

  10. Selecione um registro para remover, como registro Nancy neste exemplo:

    Selecione um registro.

  11. Selecione Remover registro:

    Galeria de contatos, agora sem o registro Nancy, que foi removido.

    Selecionar o botão remove o registro selecionado (neste exemplo, o registro Nancy).

  12. Feche a visualização do aplicativo.

    Gorjeta

    Você também pode usar um comportamento alternativo com Tecla Alt em vez de usar a visualização do aplicativo com botão Toque ou F5.

Neste exemplo, você removerá um item usando um ícone dentro da galeria.

Criar uma coleção com dados de exemplo

Se você já tem dados de amostra preparados, pule esta etapa e vá para Ícone de lixeira dentro de uma galeria.

  1. Adicione um controle Button na tela.

  2. Defina a propriedade OnSelect com a seguinte fórmula:

    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. Selecione o botão enquanto mantém pressionado a tecla Alt.

É criada uma coleção de amostras que você pode usar no exemplo a seguir.

  1. Crie um novo aplicativo de tela em branco usando um layout de telefone.

    Um aplicativo de tela em branco usando o layout de telefone.

  2. Selecione Inserir no painel esquerdo.

  3. Selecione Galeria vertical.
    Um controle Gallery é adicionado à sua tela.

    Usando o painel de ferramentas Inserir para adicionar um controle de galeria vertical.

  4. Você é solicitado a selecionar uma fonte de dados, onde é possível selecionar uma fonte de dados nas fontes de dados disponíveis.
    Por exemplo, selecione a tabela Contacts para usar dados de exemplo:

    Seleção da tabela Contacts para exibir na galeria.

    Se você criou uma coleção, em vez disso, selecione sua coleção:

    Coleção de contatos de exemplo.

  5. Selecione um controle no item superior da galeria.

    Para garantir que a próxima etapa insira o item no modelo da galeria e não fora da galeria, siga esta etapa antes de passar para a próxima etapa.

    Selecionar registro superior em uma galeria.

  6. Selecione Adicionar ícone no painel esquerdo.

    Usando o painel de ferramentas Inserir para adicionar um controle de ícone.

    Observação

    Adicionar ícone insere um ícone + ao lado esquerdo da galeria, replicado para cada item da galeria.

  7. No item superior, mova o ícone para o lado direito da tela.

    Mover ícone.

  8. Selecione a propriedade Icon para ícone e defina-a com a seguinte fórmula para atualizar a imagem do ícone como ícone da lixeira:

    Icon.Trash
    

    Nota

    O prefixo Icon. é mostrado apenas quando você está editando ativamente a fórmula.

    Alterando o ícone para o ícone da lixeira.

  9. Defina a propriedade OnSelect com a seguinte fórmula:

    Remove( [@Contacts], ThisItem )
    

    Observação

    Você deve usar o operador de desambiguação global[@...] neste exemplo com dados de exemplo que usem a tabela Contacts para evitar conflito com um relacionamento um-para-muitos. Se você usar fontes de dados como uma lista ou tabela do SQL Server, não é necessário usar operador de desambiguação global.

    OnSelect para ícone de lixeira.

  10. Visualize o aplicativo usando o Reproduzir no canto superior direito ou pressione F5 no teclado.

  11. Selecione o ícone da lixeira ao lado de um registro, por exemplo, Maria:

    Galeria com um dos contatos removidos.

    O registro é excluído:

    Registro excluído.

  12. Feche a visualização do aplicativo.