Neste artigo vou mostrar-te como podes utilizar as funções FILTER e SEARCH para consultar dados na tua aplicação de Tela com Power Apps.
Estas funções são praticamente obrigatórias no desenvolvimento de uma aplicação pois permitem, de uma forma dinâmica, filtrar a informação de uma tabela de dados, ou galeria por um ou vários critérios.
As duas funções são semelhantes, mas apresentam algumas diferenças que te quero mostrar neste artigo!
Criar a aplicação e ligar aos dados
Começa por aceder a https://make.powerapps.com/ e no teu ambiente cria uma aplicação de tela em branco.

Damos um nome à aplicação e escolhemos o formato Tablet.

De seguida na aplicação vamos ligar à base de dados, que neste caso é uma lista de SharePoint.

Para obteres a lista podes importar uma tabela de Excel, por exemplo.

Depois de acederes ao site e localizares a lista, confirma e estás pronto para utilizar a base de dados.

Criar uma tabela para visualizar os dados.
No ecrã da aplicação inserimos um controlo de tabela, que é um controlo moderno e que podes ativar em Definições => Atualizações => Controlos e Temas modernos.

Na inserção da tabela, ligamos a mesma à base de dados e temos o controlo no ecrã.
Utilizar a função Filter
A função Filter permite localizar um conjunto de registos que correspondem a uma ou mais condições. A função vai filtrar os registos da tabela que correspondem à condição aplicada.
Com esta função podemos utilizar uma conjugação de condições com a lógica “E” utilizando os caracteres “&&” ou a lógica “OU” com os caracteres “||”.
Para utilizarmos a função, acedemos à propriedade Items da nossa tabela.
Filter(‘Dados Financeiros’; País = “Alemanha”)

A função pode ser mais dinâmica, onde podes utilizar uma lista de valores, para poderes usar como filtro. No contexto da aplicação podemos criar algumas Caixas de Combinação [Combo Box] para obtermos uma lista de Países e Produtos por exemplos.

Na propriedade Items da caixa de combinação podemos utilizar a função Distinct que define uma lista de valores exclusivos de uma determinada coluna da base de dados.
Distinct(‘Dados Financeiros’; País)

Podemos repetir o processo e criar uma segunda Caixa de Combinação para o Produto.
Distinct(‘Dados Financeiros’; Produto)

Com as caixas de combinação, a função Filter é mais dinâmica, uma vez que podemos utilizar o critério para filtrar a Base de Dados em função do valor da Caixa de combinação.
Filter(‘Dados Financeiros’;País=cbPaís.Selected.Value)
E podemos adicionar mais critérios para o filtro…
Filter(‘Dados Financeiros’;País=cbPaís.Selected.Value&&Produto=cbProduto.Selected.Value)

Utilizar a função Search
A função Search permite localizar um conjunto de registos na tabela, mas para uma cadeia de texto, numa das colunas indicadas pela função. Neste caso a função Search pode ser utilizada para pesquisas em que o termo de pesquisa é incompleto, como por exemplo “Jo” em “João”, ou no caso específico “Mercado” para o “Segmento de Mercado”, por exemplo.
Para exemplificar a função Search, vamos criar um ecrã com uma Galeria Vertical. A galeria vai estar ligada à mesma base de dados.

Adicionalmente à Galeria, criamos uma Caixa de Texto, que vai ter o texto utilizado para a pesquisa dos dados em várias colunas da tabela.

Depois de redefinires os nomes da Galeria e Caixa de Texto, utilizamos o mesmo conceito que na tabela. Acedemos à propriedade Items da Galeria.
Search(‘Dados Financeiros’;txtPesquisa.Value;Produto;’Segmento Mercado’;’Banda de Desconto’)

A função Search permite então com apenas uma Caixa de Texto aplicar o critério a múltiplas colunas em simultâneo.
Resolver o aviso de Delegação
Deves reparar no exemplo que temos um aviso de Delegação sobre os Dados. Embora a função esteja a funcionar, poderemos não obter todos os dados da consulta por causa da delegação.
Uma das formas de resolvermos a Delegação é trazer para a aplicação os dados da base de dados.
Podemos criar uma coleção, que é uma variável, que contem a tabela com os dados financeiros. De certa forma estamos a criar uma cópia local da nossa base de dados.
Podemos criar a coleção no momento de inicio da aplicação, na propriedade OnStart da aplicação.
ClearCollect(colDados; ‘Dados Financeiros’)

Para habilitar a variável devemos executar novamente a aplicação.

Se substituirmos a base de dados pela variável colDadospodesobservar que já não existe o aviso de delegação.

No teste da aplicação podemos observar o valor a localizar e as correspondências na Galeria.


Leave a Reply