Como criar variáveis no Power Apps: Set e UpdateContext
As variáveis no Power Apps guardam valores temporários — o nome de um utilizador, um total ou um estado "sim/não" — para os reutilizar em vários pontos da aplicação. Existem dois tipos principais, as variáveis globais e as variáveis de contexto, e saber quando usar cada um evita erros e torna a app mais fácil de manter.
Pré-requisitos
- Uma conta com acesso ao Power Apps (Maker Portal em make.powerapps.com).
- Uma Canvas App nova ou existente onde possa experimentar.
- Conhecer o básico da interface: adicionar botões e etiquetas (labels) ao ecrã.
Passo 1: Criar uma variável global com Set
A função Set cria uma variável global, disponível em todos os ecrãs da aplicação. Adicione um botão ao ecrã, selecione-o e, na propriedade OnSelect, escreva o código abaixo. Ao clicar no botão (ou com Alt pressionado no editor), a variável passa a existir.
Set(varNomeUtilizador, "Ana Silva")
Não é preciso declarar a variável antes: ela nasce no momento em que a usa. O primeiro valor que atribui também define o tipo (texto, número, booleano), por isso mantenha o mesmo tipo ao longo da app.
Passo 2: Mostrar o valor num ecrã
Adicione uma etiqueta (label) e defina a propriedade Text para o nome da variável. Assim que o botão do Passo 1 for clicado, a etiqueta mostra o conteúdo guardado.
varNomeUtilizador
Como é global, pode colocar esta mesma etiqueta em qualquer outro ecrã e o valor aparece na mesma — não precisa de voltar a defini-lo.
Passo 3: Criar uma variável de contexto com UpdateContext
As variáveis de contexto só existem no ecrã onde são criadas. Use-as para estados locais, como mostrar ou esconder um painel. A função UpdateContext recebe um registo (record) com o nome e o valor entre chavetas.
UpdateContext({ locMostrarDetalhes: true })
Uma convenção comum é começar as variáveis globais por "var" e as de contexto por "loc" (de "local"), para as distinguir de relance ao ler as fórmulas.
Passo 4: Alternar um valor (toggle)
Para um botão que mostra e esconde algo, alterne o booleano com a função Not. Coloque este código no OnSelect de um botão e ligue a propriedade Visible de um painel à variável locMostrarDetalhes.
UpdateContext({ locMostrarDetalhes: Not(locMostrarDetalhes) })
Cada clique inverte o valor: de false para true e de volta. É o padrão típico de um botão "Mostrar mais / Mostrar menos".
Passo 5: Passar um valor entre ecrãs com Navigate
A função Navigate muda de ecrã e pode, ao mesmo tempo, criar uma variável de contexto no ecrã de destino. Isto é útil para enviar, por exemplo, o item selecionado numa lista.
Navigate(EcraDetalhe, ScreenTransition.Cover, { locItem: Gallery1.Selected })
No EcraDetalhe, a variável locItem já existe e pode usá-la nas etiquetas para mostrar os dados do registo escolhido.
Passo 6: Limpar uma variável
Para repor uma variável, atribua-lhe o valor Blank(). Isto é útil, por exemplo, ao fechar um formulário e querer apagar o que estava guardado.
Set(varNomeUtilizador, Blank())
Para variáveis de contexto, o princípio é o mesmo com UpdateContext({ locMostrarDetalhes: false }).
Verificar o resultado
Pré-visualize a app com F5 (ou o botão Play). Clique no botão do Passo 1 e confirme que a etiqueta mostra "Ana Silva". Teste o toggle do Passo 4 e veja o painel a aparecer e desaparecer. No editor, abra o painel Variáveis (ícone de variáveis no menu à esquerda) para ver todas as variáveis globais e de contexto e os seus valores atuais.
Conclusão
Já sabe criar variáveis globais com Set, variáveis de contexto com UpdateContext e passar valores entre ecrãs com Navigate. O próximo passo natural é conhecer as coleções (collections), com ClearCollect, para guardar tabelas de dados em memória. Uma dica final: prefira variáveis de contexto sempre que o valor só faça sentido num ecrã — mantém a app mais organizada e fácil de depurar. Que estado da sua app faria mais sentido guardar numa variável?