Como filtrar uma galeria com pesquisa no Power Apps
Uma galeria com dezenas ou centenas de registos torna-se difícil de percorrer à mão. Uma barra de pesquisa resolve o problema: o utilizador escreve e a lista filtra em tempo real. E a melhor parte é que, para filtrar uma galeria com pesquisa no Power Apps, basta uma caixa de texto e uma fórmula Power Fx — sem programação nem componentes extra. Vamos usar uma lista de colaboradores como exemplo, mas a mesma técnica serve para produtos, tarefas ou qualquer outra tabela.
Pré-requisitos
- Uma aplicação Canvas aberta no Power Apps Studio.
- Uma fonte de dados ligada — por exemplo uma lista do SharePoint, uma tabela do Dataverse ou uma coleção interna.
- Uma galeria (Gallery) já colocada no ecrã e ligada a essa fonte de dados.
Passo 1: Confirmar a galeria e a fonte de dados
Antes de pesquisar é preciso ter uma galeria a mostrar dados. Uma galeria é apenas um contentor que repete o mesmo esquema visual para cada linha da fonte. Selecione a galeria e confirme, na propriedade Items, o nome da fonte. Neste exemplo vamos usar uma tabela chamada Colaboradores com as colunas Nome e Departamento. Se a galeria já apresenta a lista completa, está tudo pronto para continuar.
Passo 2: Adicionar a caixa de pesquisa
No separador Inserir, escolha Text input e coloque a caixa por cima da galeria. Para manter a fórmula legível, mude o nome do controlo para txtPesquisa no painel de propriedades. Depois, defina a propriedade HintText para dar uma pista ao utilizador sobre o que pode procurar:
"Pesquisar colaborador..."
Passo 3: Filtrar a galeria com a função Search
Chegou a parte principal. Selecione a galeria e altere a propriedade Items para a função Search, que recebe a tabela, o texto a procurar e as colunas onde procurar:
Search(
Colaboradores,
txtPesquisa.Text,
"Nome",
"Departamento"
)
A função Search não distingue maiúsculas de minúsculas e procura o texto dentro de cada coluna indicada. Um pormenor prático: quando a caixa está vazia, a Search devolve todos os registos, por isso a galeria regressa sozinha à lista completa sem qualquer condição extra.
Passo 4: Pesquisar em várias colunas com Filter
A Search resolve a maioria dos casos, mas por vezes queremos mais controlo — por exemplo, combinar a pesquisa com outros critérios. Nesses casos usamos a função Filter com o operador in, que verifica se o texto aparece dentro de cada coluna:
Filter(
Colaboradores,
txtPesquisa.Text in Nome || txtPesquisa.Text in Departamento
)
O operador || significa "ou", por isso um registo aparece se o texto coincidir com o Nome ou com o Departamento. Esta abordagem é mais flexível porque pode juntar outras condições com && ("e").
Passo 5: Garantir a delegação em fontes grandes
Em fontes com muitos registos, como listas do SharePoint, a Search e o operador in podem não ser delegáveis: o Power Apps processa apenas os primeiros registos (por omissão 500) em vez da lista toda. A alternativa que o SharePoint consegue delegar é a função StartsWith, que procura registos cujo campo começa pelo texto escrito:
Filter(
Colaboradores,
StartsWith(Nome, txtPesquisa.Text)
)
Dica: se aparecer um triângulo azul de aviso na fórmula, é a delegação a avisar. Para grandes volumes, prefira StartsWith e evite funções não delegáveis.
Passo 6: Adicionar um botão para limpar a pesquisa
Para o utilizador voltar rapidamente à lista completa, insira um ícone ou botão e defina a propriedade OnSelect:
Reset(txtPesquisa)
A função Reset limpa a caixa de texto. Como a galeria depende de txtPesquisa.Text, a lista completa reaparece de imediato.
Verificar o resultado
Entre em modo de pré-visualização (tecla F5 ou o botão de reprodução) e comece a escrever na caixa. A galeria deve reduzir os resultados a cada letra. Depois, apague o texto ou clique no botão de limpar e confirme que voltam todos os registos. Se nada mudar, verifique se o nome usado na fórmula (txtPesquisa) é exatamente igual ao nome da caixa de texto.
Conclusão
Com apenas uma caixa de texto e uma fórmula, deu à sua galeria uma pesquisa rápida e fácil de usar. O passo seguinte natural é combinar a pesquisa com um filtro por dropdown — por exemplo, filtrar também por departamento — encadeando condições dentro do Filter. Qual seria a próxima coluna a incluir na sua pesquisa?