Como criar uma coleção no Power Apps com ClearCollect
As coleções no Power Apps são tabelas guardadas na memória da aplicação e servem para juntar dados de várias fontes, preparar registos antes de os gravar ou reduzir chamadas repetidas à origem de dados. Ao contrário de uma variável simples, uma coleção guarda muitas linhas de uma só vez. Saber criá-la com ClearCollect é uma das bases para construir aplicações Canvas rápidas e bem organizadas.
Pré-requisitos
- Uma conta com acesso ao Power Apps (make.powerapps.com).
- Uma Canvas App aberta no Power Apps Studio (nova ou existente).
- Familiaridade básica com a barra de fórmulas e as propriedades dos controlos.
Passo 1: Perceber o que é uma coleção
Uma coleção é uma tabela temporária que existe apenas enquanto a aplicação está aberta: quando o utilizador fecha a app, os dados desaparecem. Tem linhas (registos) e colunas (campos), tal como uma folha de cálculo. As colunas são deduzidas automaticamente a partir do primeiro registo que inserir, por isso convém que todos os registos tenham os mesmos campos. Ao contrário de uma variável criada com Set, que guarda um único valor, a coleção guarda vários registos — ideal para listas de produtos, itens de um carrinho ou dados que o utilizador vai introduzindo.
Passo 2: Criar a coleção com ClearCollect
A forma mais comum de começar é com a função ClearCollect. Ela faz duas coisas de uma só vez: limpa a coleção (caso já tenha dados) e volta a preenchê-la, evitando registos duplicados sempre que o código corre. Adicione um botão ao ecrã e, na propriedade OnSelect, escreva:
ClearCollect(
colProdutos,
{ Produto: "Teclado", Preco: 25, Stock: 10 },
{ Produto: "Rato", Preco: 15, Stock: 20 },
{ Produto: "Monitor", Preco: 120, Stock: 5 }
)Cada par de chavetas { } representa um registo, e cada par campo: valor é uma coluna. O nome colProdutos é livre, mas usar o prefixo col ajuda a distinguir coleções de variáveis no editor. Se quiser que a coleção seja criada logo ao abrir a aplicação, coloque o mesmo código na propriedade OnStart da app ou no OnVisible do ecrã.
Dica: evite pôr ClearCollect dentro de galerias ou em fórmulas que recalculam com frequência. Chame-o num botão ou no arranque, para não recarregar os dados a cada interação.Passo 3: Adicionar registos com Collect
Para acrescentar linhas sem apagar as existentes, use Collect. É o que faria, por exemplo, ao gravar um novo produto introduzido em caixas de texto pelo utilizador:
Collect(
colProdutos,
{ Produto: txtProduto.Text, Preco: Value(txtPreco.Text), Stock: Value(txtStock.Text) }
)A função Value converte o texto das caixas em número, para que as colunas Preco e Stock fiquem com o tipo correto e possam ser somadas ou ordenadas mais tarde.
Passo 4: Mostrar a coleção numa galeria
Insira uma Galeria a partir do menu Inserir e defina a propriedade Items com o nome da coleção:
colProdutosA galeria passa a listar automaticamente cada registo. Dentro dela, associe as etiquetas aos campos com ThisItem.Produto, ThisItem.Preco e ThisItem.Stock. Escolha um esquema de galeria com título e subtítulo para ver logo os dados sem configurar tudo à mão.
Passo 5: Limpar ou remover registos
Para esvaziar a coleção por completo, use Clear. Para apagar um registo específico — por exemplo, a partir de um ícone de lixo dentro da galeria — use Remove; e para apagar por condição, use RemoveIf:
Clear(colProdutos)
Remove(colProdutos, ThisItem)
RemoveIf(colProdutos, Stock = 0)Verificar o resultado
Pré-visualize a aplicação com F5 e clique no botão que criou: a galeria deve preencher-se de imediato. Para confirmar o conteúdo exato, adicione uma etiqueta com CountRows(colProdutos), que mostra quantos registos existem. Pode ainda abrir o menu Variáveis no painel esquerdo do Power Apps Studio e ver a coleção listada em Coleções, com uma pré-visualização dos dados reais.
Conclusão
Com ClearCollect, Collect e Remove já consegue criar e gerir dados em memória no Power Apps. O passo seguinte é ligar a coleção a uma fonte real: use Patch para gravar as alterações no Dataverse ou no SharePoint, ou SaveData e LoadData para guardar os dados no dispositivo e permitir trabalho offline. Qual dos ecrãs da sua aplicação beneficiaria mais de carregar os dados uma vez para uma coleção?