Funções Remove e RemoveIf
Aplica-se a: Aplicativos de tela CLI de aplicativos Power Platform controlados por modelo
Remove registos de uma origem de dados.
Nota
Os comandos PAC CLI pac power-fx não suportam a função RemoveIf .
Descrição
Função Remove
Utilize a função Remove para remover um ou mais registos específicos de uma origem de dados.
Para as coleções, todo o registo tem de corresponder. Pode utilizar o argumento RemoveFlags.All para remover todas as cópias de um registo; caso contrário, apenas uma cópia do registo é removida.
Função RemoveIf
Utilize a função RemoveIf para remover um ou mais registos com base numa condição ou num conjunto de condições. Cada condição pode ser uma fórmula que resulta num valor true ou false e pode referenciar colunas da origem de dados por nome. Cada condição é avaliada individualmente para cada registo e cada registo será removido se todas as condições forem avaliadas como verdadeiras.
Remove e RemoveIf retornam o origem de dados modificado como uma tabela. Pode utilizar ambas as funções apenas em fórmulas de comportamento.
Também pode utilizar a função Clear para remover todos os registos numa coleção.
Delegação
Quando utilizada com uma origem de dados, estas funções não podem ser delegadas. Só será obtida a primeira parte da origem de dados e, em seguida, a função aplicada. Isto pode não representar o cenário completo. Poderá ser apresentada uma mensagem de aviso na hora da criação para o lembrar desta limitação.
Suporte à delegação (Experimental)
O suporte à delegação para RemoveIf está agora em Pré-visualização Experimental (Desligado por predefinição) para origens de dados que o suportam. Se uma origem de dados não suportar esta caraterística, o Power Apps enviará uma consulta para o servidor e obterá todos os dados que correspondem à expressão de filtro até ao máximo de 500, 2000 ou ao tamanho da página de dados. Em seguida, irá efetuar uma operação de eliminação em cada um desses registos com chamadas individuais para o servidor.
Sintaxe
Remover( DataSource,Record1 [, Record2, ... ] [, RemoveFlags.All ] )
- DataSource – Obrigatório. A origem de dados que contém um ou mais registos que pretende remover.
- Registos – Obrigatório. Um ou mais registos a remover.
- RemoveFlags.All – Opcional. Numa coleção, o mesmo registo pode aparecer mais do que uma vez. Pode adicionar o argumento RemoveFlags.All para remover todas as cópias do registo.
Remover( DataSource,Table [, RemoveFlags.All ] )
- DataSource – Obrigatório. A origem de dados que contém os registos que pretende remover.
- Tabela – Obrigatório. Uma tabela de registos a remover.
- RemoveFlags.All – Opcional. Numa coleção, o mesmo registo pode aparecer mais do que uma vez. Pode adicionar o argumento RemoveFlags.All para remover todas as cópias do registo.
RemoveIf( DataSource,Condição [, ... ] )
- DataSource – Obrigatório. A origem de dados que contém um ou mais registos que pretende remover.
- Condições – Obrigatório. Uma fórmula que avalia como true um ou mais registos a remover. Pode utilizar nomes de colunas do argumento DataSource na fórmula. Se especificar várias Conditions, devem ser todas avaliadas como true para um ou mais registos a remover.
Exemplos - fórmulas únicas
Nestes exemplos, vai remover um ou mais registos de uma origem de dados denominada IceCream e que começa com os dados nesta tabela:
Criar uma coleção com registos de exemplo
Para criar uma coleção com estes dados:
Insira um controlo Button.
Defina a propriedade OnSelect do controlo button para a fórmula abaixo:
ClearCollect( IceCream, { ID: 1, Flavor: "Chocolate", Quantity: 100 }, { ID: 2, Flavor: "Vanilla", Quantity: 200 }, { ID: 3, Flavor: "Strawberry", Quantity: 300 } )
Selecione o botão enquanto mantém premida a tecla Alt:
Remover registos de exemplo da coleção utilizando uma fórmula
Fórmula | Descrição | Result |
---|---|---|
Remover( Sorvete, LookUp( IceCream, Flavor="Chocolate" )) |
Remove o registo Chocolate da origem de dados. | A origem de dados IceCream foi modificada. |
Remover( Sorvete, LookUp( IceCream, Flavor="Chocolate" ), LookUp( IceCream, Flavor="Morango" ) ) |
Remove dois registos da origem de dados. | A origem de dados IceCream foi modificada. |
RemoveIf( Sorvete, Quantidade > 150 ) | Remove os registos que tenham uma Quantity superior a 150. | A origem de dados IceCream foi modificada. |
RemoveIf( Sorvete, Quantidade > 150, Esquerda( Sabor, 1 ) = "S" ) | Remove os registos que tenham uma Quantity superior a 150 e cujo Flavor comece pela letra S. | A origem de dados IceCream foi modificada. |
RemoveIf( Sorvete, verdadeiro ) | Remove todos os registos da origem de dados. | A origem de dados IceCream foi modificada. |
Exemplos - botão remove fora de uma galeria
Neste exemplo, irá utilizar um controlo Gallery para listar os registos numa tabela. E, em seguida, utilize a função Remove para remover seletivamente um item.
Preparar os dados de exemplo
Este exemplo utiliza a tabela Contactos em Microsoft Dataverse disponível com as aplicações e dados da amostra. Pode implementar aplicações e dados de exemplo quando cria um ambiente. Também pode utilizar qualquer outra origem de dados.
Botão remover fora de uma galeria
Neste exemplo, irá remover um item utilizando um botão que esteja fora da galeria.
Crie uma nova aplicação de tela em branco através de um Esquema de telefone.
Selecione Inserir no painel de navegação esquerdo.
Selecione Galeria vertical.
É adicionado um controlo Gallery ao seu ecrã.É-lhe solicitado que selecione uma origem de dados onde possa selecionar uma origem de dados a partir das origens de dados disponíveis.
Por exemplo, selecione a tabela Contactos para utilizar dados da amostra:A galeria mostra itens desta tabela:
Insira um controlo Button a partir do painel esquerdo:
Mova o botão adicionado abaixo dos itens da galeria:
Atualize a propriedade de texto do botão para Remover registo. Também pode utilizar o texto que pretender:
Defina a propriedade OnSelect para este controlo button com a seguinte fórmula:
Remove( Contacts, Gallery1.Selected )
O controlo gallery disponibiliza o registo selecionado atualmente utilizando a propriedade Selected. Remover função refere-se a este registro selecionado para removê-lo.
Pré-visualize a aplicação com o botão Reproduzir na parte superior direita ou prima F5 no teclado:
Selecione um registo a remover, como o registo Nancy neste exemplo:
Selecione Remover registo:
A seleção do botão remove o registo selecionado (neste exemplo, o registo de Nancy).
Feche a pré-visualização da aplicação.
Gorjeta
Também pode utilizar o comportamento alternativo com a tecla Alt em vez de utilizar a pré-visualização da aplicação com o botão Reproduzir ou F5.
Exemplos - o ícone de caixote do lixo dentro de uma galeria
Neste exemplo, irá remover um item utilizando um ícone colocado dentro da galeria.
Criar uma coleção com dados de exemplo
Se já tiver dados de exemplo preparados, ignore este passo e vá para o ícone de Caixote do lixo dentro de uma galeria.
Adicione um controlo Button ao seu ecrã.
Defina a propriedade OnSelect à 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" } )
Selecione o botão enquanto mantém premida a tecla Alt.
É criada uma coleção de exemplo que pode utilizar no exemplo seguinte.
O ícone de caixote do lixo dentro de uma galeria
Crie uma nova aplicação de tela em branco através de um Esquema de telefone.
Selecione Inserir no painel de navegação esquerdo.
Selecione Galeria vertical.
É adicionado um controlo Gallery ao seu ecrã.É-lhe solicitado que selecione uma origem de dados onde possa selecionar uma origem de dados a partir das origens de dados disponíveis.
Por exemplo, selecione a tabela Contactos para utilizar dados da amostra:Se tiver criado uma coleção, selecione a sua coleção:
Selecione um controlo no item superior da galeria.
Para garantir que o passo seguinte insere o item no modelo da galeria e não fora da galeria, certifique-se de que segue este passo antes de avançar para o passo seguinte.
Selecione Adicionar ícone no painel esquerdo.
Nota
Adicionar ícone insere um + ícone no lado esquerdo da galeria, replicado para cada item na galeria.
No item superior, mova o ícone para o lado direito do ecrã.
Selecione a propriedade Icon para o ícone e defina-a para a fórmula seguinte para atualizar a imagem de ícone como ícone de lixo:
Icon.Trash
Nota
O prefixo Icon. só é mostrado quando está a editar ativamente a fórmula.
Defina a propriedade OnSelect à seguinte fórmula:
Remove( [@Contacts], ThisItem )
Nota
Deve utilizar o operador global de desambiguação[@...] neste exemplo com dados de amostra que utilizam a tabela Contactos para evitar conflitos com uma relação Um para Muitos. Se utilizar origens de dados, como uma lista ou uma tabela do SQL Server, não é necessário utilizar o operador de desambiguação global.
Pré-visualize a aplicação com o botão Reproduzir na parte superior direita ou prima F5 no teclado.
Selecione o ícone de lixo junto a um registo; por exemplo, Maria:
O registo é eliminado:
Feche a pré-visualização da aplicação.