(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como criar um assistente de preenchimento automático em Power Apps / Power Platform

João Barros 24 de September de 2026 4 min de leitura

Este tutorial ensina a criar um assistente de preenchimento automático em Power Apps / Power Platform que sugere valores enquanto o utilizador escreve. É útil para acelerar a introdução de dados, reduzir erros tipográficos e melhorar a experiência do utilizador em formulários ou pesquisas.

Pré-requisitos

  • Conta com acesso ao Power Apps.
  • Uma fonte de dados simples: lista do SharePoint, Excel no OneDrive ou Dataverse com a coluna a sugerir.
  • Conhecimentos básicos de Canvas Apps: galerias, Text Input e funções Filter/StartsWith.

Passo 1: Preparar a fonte de dados

Escolha ou crie uma fonte de dados com os valores a sugerir. Por exemplo, uma lista do SharePoint chamada "Produtos" com a coluna "Title" contendo nomes de produtos. Ter dados limpos facilita as sugestões.

// Exemplo de itens (na prática estão na lista do SharePoint ou Excel)  // Title
// Monitor 24"
// Teclado Mecânico
// Rato Óptico
// Monitor 27"

Passo 2: Criar um Canvas App e ligar a fonte de dados

Abra o Power Apps Studio, crie um Canvas App (Tablet ou Phone) e adicione a fonte de dados escolhida a partir do painel Data.

Data sources -> Add data -> SharePoint -> selecionar site -> Produtos

Passo 3: Adicionar controlo Text Input para digitação

Insira um controlo Text input e defina o seu Name para txtSearch. Este será o campo onde o utilizador escreve e que dispara as sugestões.

// Propriedades principais
Name: txtSearch
HintText: "Pesquisar produto..."

Passo 4: Adicionar uma galeria para apresentar sugestões

Insira uma Gallery (vertical, sem cabeçalho) abaixo de txtSearch. Configure-a para mostrar apenas as sugestões filtradas da fonte de dados, usando StartsWith ou Filter para correspondência.

// Propriedade Items da Gallery (chamada galSuggestions)
Items:
If(
  IsBlank(txtSearch.Text),
  [],
  FirstN(
    Filter(Produtos, StartsWith(Title, txtSearch.Text)),
    10
  )
)

// TemplateLabel.Text: ThisItem.Title

Passo 5: Permitir seleção e preencher o campo

No template da galeria, adicione um botão ou torne o próprio template clicável. Ao selecionar um item, atualize txtSearch.Text com o valor escolhido e esconda as sugestões (por exemplo, limpar a galeria).

// OnSelect do template (ou botão dentro do template)
Set(varSelected, ThisItem.Title);
UpdateContext({showSuggestions: false});
Reset(txtSearch);
// Preencher o campo de destino se existir outro campo, por exemplo txtChosen
txtSearch.Text := varSelected
// Em Canvas Apps, para forçar atribuição use: 
// Set(varChosen, ThisItem.Title)

Nota: Text input Text é uma propriedade de leitura no runtime — em vez de atribuir a Text diretamente, use uma variável para ligar o valor mostrado. Por exemplo defina Default do txtSearch como varChosen.

// Default do txtSearch
Default: If(IsBlank(varChosen), "", varChosen)

Passo 6: Melhorar a experiência (debounce e mostrar/ocultar)

Para evitar muitos filtros enquanto o utilizador escreve, use um temporizador (Timer) para aplicar um pequeno atraso (debounce). Mostrar/ocultar a galeria com uma variável torna a interação mais limpa.

// Adicionar um Timer (Name: tmrDebounce)
Duration: 400          // 400 ms
AutoStart: false
Repeat: false

// OnChange do txtSearch
UpdateContext({showSuggestions: true});
Reset(tmrDebounce); Start(tmrDebounce);

// OnTimerEnd do tmrDebounce (faz o filtro ao terminar)
// Forçar refresh da Galeria ao terminar (a Items já usa txtSearch.Text)
UpdateContext({doFilterToggle: !doFilterToggle});

Passo 7: Tratar erros e otimizar

Erros comuns: usar Filter em grandes fontes de dados sem delegação. Para listas grandes, prefira funções delegáveis (StartsWith é delegável no SharePoint para texto). Se a fonte for maior que os limites de delegação, considere índices, vistas filtradas no servidor ou usar Azure Functions/Custom Connector.

// Exemplo de fallback para grandes volumes
Items:
If(CountRows(Produtos) < 2000,
  Filter(Produtos, StartsWith(Title, txtSearch.Text)),
  FirstN( Filter(Produtos, StartsWith(Title, txtSearch.Text)), 100 )
)

Verificar o resultado

Testar a app: escreva no txtSearch e verifique se a galeria mostra sugestões relevantes em tempo real. Seleccione uma sugestão e confirme que o campo principal recebe o valor. Verifique também comportamentos para termos inexistentes e para entradas vazias.

Conclusão

Agora tem um assistente de preenchimento automático funcional em Power Apps / Power Platform que melhora a rapidez e qualidade dos dados. Próximos passos: adicionar ordenação por relevância, destacar o texto correspondente nas sugestões ou integrar com Dataverse para lógica mais avançada. Dica: experimente ajustar o Duration do Timer para equilibrar rapidez e número de chamadas delegadas.