Excluir registros de fontes e coleções de dados

Concluído

Nesta unidade, abordaremos o conceito de exclusão de um registro de uma fonte ou coleção de dados tabulares. Diferentemente da criação e edição de registros, que têm vários controles e funções, há apenas algumas opções para excluir registros, incluindo as funções Remove, RemoveIf e Clear. Na maioria das vezes adicionamos essas funções à propriedade OnSelect de um botão ou controle de ícone para excluir um registro.

Excluir um registro

Para excluir um registro da fonte de dados, use a função Remove. Use a função Remove para especificar a fonte de dados e o registro que deseja excluir. A maneira mais comum de especificar esse registro é usar a função LookUp para recuperar o registro da fonte de dados. Outra opção é se você estiver usando uma Galeria e quiser excluir o registro atual, o operador ThisItem apontará para o registro.

Por exemplo, você pode usar a fórmula a seguir para excluir um registro.

Remove(CustomerOrders, LookUp(CustomerOrders, ID = 1))

Essa fórmula excluirá o registro, em que a ID é igual a 1 da fonte de dados CustomerOrders.

A função Remove não solicita a confirmação

A função Remove não solicita nenhuma confirmação antes de excluir o registro especificado. Se desejar confirmar que o usuário deseja remover o registro, será necessário criar uma funcionalidade de confirmação, como uma caixa de diálogo pop-up com botões.

Excluir com base em uma condição

Para excluir mais de um registro da fonte de dados, use RemoveIf. A função RemoveIf permite que você forneça uma fonte de dados da qual será feita a exclusão e uma condição para selecionar os registros que serão excluídos. Essa é a mesma lógica usada pela função Filter.

Por exemplo, você pode usar a fórmula a seguir para excluir todos os registros em que o Status é igual a Expired da fonte de dados CustomerOrders.

RemoveIf(CustomerOrders, Status = "Expired")

Excluir todos os registros

Também é possível excluir todos os registros de uma fonte de dados. Isso é mais comum com coleções em que você pode usar a função Clear. Para excluir todos os registros de uma fonte de dados, use RemoveIf.

Excluir todos os registros de uma coleção

A função Clear exclui todos os registros de uma coleção. As colunas da coleção permanecerão. A única entrada passada para a função é o nome da coleção.

Por exemplo, você poderia usar a fórmula a seguir para excluir todos os registros de uma coleção chamada collectSelectedItems.

Clear(collectSelectedItems)

Essa fórmula excluirá todos os registros da coleção collectSelectedItems sem alterar as colunas dela.

Normalmente, você verá esse tipo de fórmula ao limpar a coleção sem precisar redefini-la, como no caso de um botão de redefinição ou da seleção de um novo pedido. Ao trabalhar em coleções, você também tem a função ClearCollect.

A função ClearCollect exclui todos os registros de uma coleção e, em seguida, adiciona um conjunto de registros diferente à mesma coleção. Com uma única função, ClearCollect oferece a combinação de Clear e, em seguida Collect.

Todas as três funções têm seu lugar. Uma maneira de decidir entre Clear e Collect em vez de ClearCollect é quando ocorre a limpeza da coleção comparado a quando você deseja adicionar os registros novamente. Aqui estão dois exemplos para ilustrar:

  • Todos de uma vez: por exemplo, se você estiver recarregando os itens em uma coleção para um menu suspenso quando uma tela ficar visível, use ClearCollect. Uma única função ClearCollect em sua fórmula remove os registros antigos e adiciona imediatamente os novos registros.

  • Várias etapas: por exemplo, se você estiver usando coleções para armazenar entradas de usuário, como em um carrinho de compras, use Clear e Collect. Isso porque o usuário pode desejar limpar o carrinho de compras sem adicionar um novo registro.

Excluir todos os registros de uma fonte de dados

É possível excluir todos os registros de uma fonte de dados usando RemoveIf. Esse não é um cenário comum. Novamente, não haverá nenhuma confirmação antes que a fórmula seja processada, a menos que você crie essa funcionalidade. Por fim, não existe a opção desfazer ou lixeira no Power Apps. Para recuperar seus dados, você precisa acessar a fonte de dados e usar qualquer processo de recuperação que esteja disponível para ela, fora do Power Apps. Continue com cuidado.

Por exemplo, você pode usar a fórmula a seguir para excluir todos os registros de uma fonte de dados.

RemoveIf(CustomerOrders, true)

Essa fórmula excluirá todos os registros da fonte de dados CustomerOrders sem alterar as colunas dela.

Isso funciona porque RemoveIf verifica todos os registros na fonte de dados para ver se a equação é verdadeira. Nesse caso, a equação foi definida como verdadeira e, portanto, todos os registros serão excluídos.

Observação

A definição da parte da equação como true também funciona com a função Filter. Essa configuração poderá ser útil se você estiver tentando solucionar problemas de fórmulas quando não tiver certeza se a função Filter está retornando dados.