Função UpdateContext

Aplica-se a: Aplicações de tela

Cria ou atualiza variáveis de contexto do ecrã atual.

Descrição Geral

Utilize a função UpdateContext para criar uma variável de contexto, que contém temporariamente uma informação, tal como o número de vezes que o utilizador selecionou um botão ou o resultado de uma operação de dados.

As variáveis de contexto são confinadas a um ecrã, o que significa que não é possível criar uma fórmula que se refira a uma variável de contexto no outro ecrã. Se utilizou outra ferramenta de programação, pode optar por uma variável de contexto como semelhante a uma variável local. Utilize a função Set para trabalhar com as variáveis globais que estão disponíveis em toda a sua aplicação.

As Power Apps são baseadas em fórmulas que são recalculadas automaticamente à medida que o utilizador interage com uma aplicação. As variáveis de contexto não proporcionam esta vantagem e podem tornar a sua aplicação mais difícil de criar e compreender. Antes de utilizar uma variável de contexto, consulte de novo trabalhar com variáveis.

Descrição

Para criar ou atualizar uma variável de contexto, transmitir um único registo para a função UpdateContext. Em cada registo, especifique o nome de um coluna, que define ou corresponde ao nome da variável e o valor para o qual pretende definir essa variável.

  • Se especificar o nome de uma variável que definiu anteriormente, UpdateContext define o valor da variável para o valor que especificar.
  • Se especificar o nome da variável que ainda não existe, UpdateContext cria uma variável com esse nome e define o valor dessa variável para o valor que especificar.
  • Se tiver definido anteriormente uma variável, mas não especificá-la nesta fórmula UpdateContext específica, o respetivo valor permanece igual.

As variáveis de contexto são criadas implicitamente utilizando a função UpdateContext ou Navigate. Não é necessária uma declaração explícita. Se remover todas as referências UpdateContext e Navigate para uma variável de contexto, esta deixa de existir. Para limpar uma variável, defina o respetivo valor para o resultado da função Blank.

Pode ver os valores, as definições e as utilizações das suas variáveis na vista Variáveis no menu Ficheiro no ambiente de criação.

Ao utilizar o nome da coluna da variável, faz referência a uma variável de contexto numa fórmula. Por exemplo, UpdateContext( { ShowLogo: true } ) cria uma variável de contexto com o nome ShowLogo e define o respetivo valor como true. Em seguida, pode utilizar o valor desta variável de contexto utilizando o nome ShowLogo numa fórmula. Pode escrever ShowLogo como fórmula para a propriedade Visible de um controlo image e mostrar ou ocultar esse controlo caso esse valor da variável de contexto for true ou false.

Como os exemplos apresentados neste tópico mostram, as variáveis de contexto podem conter vários tipos de informação, incluindo:

  • um valor único
  • um registo
  • uma tabela
  • uma referência de objeto
  • qualquer resultado de uma fórmula

Um variável de contexto mantém o respetivo valor até a aplicação ser fechada. Se definir uma variável de contexto e registar o respetivo valor num ecrã específico, essa informação permanece intacta, mesmo que o utilizador mude para um ecrã diferente. Após o fecho da aplicação, o valor da variável de contexto perder-se-á e terá de ser criado novamente se a aplicação for carregada novamente.

Cada variável de contexto é confinada para um ecrã. Se quiser definir uma variável de contexto num ecrã e modificar essa variável a partir de outro ecrã, deve criar uma fórmula baseada na função Navigate. Ou utilize uma variável global.

UpdateContext não tem um valor devolvido e pode utilizá-lo apenas numa fórmula de comportamento.

Sintaxe

UpdateContext( UpdateRecord )

  • UpdateRecord – Obrigatório. Um registo que contém o nome de pelo menos uma coluna e um valor para essa coluna. Uma variável de contexto é criada ou atualizada para cada coluna e o valor que especificar.

UpdateContext( { ContextVariable1: Value1 [, ContextVariable2: Value2 [, ... ] ] } )

  • ContextVariable1 – Obrigatório. O nome de uma variável global a criar ou atualizar.
  • Value1 – Obrigatório. O valor a atribuir à variável de contexto.
  • ContextVariable2: Value2, ... – Opcional. Variáveis de contexto adicionais para criar ou atualizar e os respetivos valores.

Exemplos

Fórmula Descrição Resultado
UpdateContext( { Counter: 1 } ) Cria ou modifica a variável de contexto Countador, ao definir o respetivo valor para 1. Contador tem o valor 1. Pode referir essa variável ao utilizar o nome Contador numa fórmula.
UpdateContext( { Counter: 2 } ) Define o valor da variável de contexto Contador a partir do exemplo anterior para 2. Contador tem o valor 2.
UpdateContext( { Nome: "Lily", Pontuação: 10 } ) Cria ou modifica as variáveis de contexto Nome e Pontuação, ao definir os respetivos valores para Liliana e 10, respetivamente. Nome tem o valor Liliana e Pontuação tem o valor 10.
UpdateContext( { Pessoa: { Nome: "Milton", Morada "Rua Principal 1" } } ) Cria ou modifica a variável de contexto Pessoa ao definir o respetivo valor para um registo. O registo contém duas colunas denominadas Nome e Endereço. O valor da coluna Nome é Guilherme e o valor da coluna Endereço coluna é Rua Principal, 1. Pessoa tem o valor do registo { Nome:"Milton", Morada:"RuaPrincipal 1" } }.

Referencie este registo como um todo com o nome Pessoa ou como uma coluna individual deste registo com Pessoa.Nome ou Pessoa.Endereço.
UpdateContext( { Pessoa: Patch( Pessoa, {Morada: "Rua Principal 2" } ) } ) Funciona com a função Patch para atualizar a variável de contexto Person ao definir o valor da coluna Endereço para Rua Principal 2. Pessoa tem agora o valor do registo { Nome: "Milton", Morada: "Rua Principal 2" } }.

Exemplo passo a passo 1

  1. Atribua ao ecrã predefinido o nome Origem, adicione outro ecrã e dê-lhe o nome Destino.

  2. No ecrã Origem, adicione dois botões e defina as respetivas propriedades Text para que uma indique Inglês e a outra Português.

  3. Defina a propriedade OnSelect do botão Inglês para esta expressão:
    Navigate(Destino, ScreenTransition.Fade, {idioma:"Inglês"})

  4. Defina a propriedade OnSelect do botão Português para esta expressão:
    Navigate(Target, ScreenTransition.Fade, {idioma:"português"})

  5. No ecrã Destino, adicione uma etiqueta e defina a respetiva propriedade Text para esta expressão:
    If(idioma="inglês", "Hello!", "Olá!")

  6. No ecrã Destino, selecione Formas no separador Inserir e, em seguida, selecione a seta Voltar.

  7. Defina a propriedade OnSelect da seta Voltar para esta fórmula:
    Navigate(Origem, ScreenTransition.Fade)

  8. No ecrã Origem, prima F5 e, em seguida, selecione o botão para qualquer idioma.

    No ecrã Destino, a etiqueta é apresentada no idioma que corresponde ao botão que selecionou.

  9. Selecione a seta Voltar para voltar para o ecrã Origem e, em seguida, selecione o botão para o outro idioma.

    No ecrã Destino, a etiqueta é apresentada no idioma que corresponde ao botão que selecionou.

  10. Prima Esc para voltar à área de trabalho predefinida.

Exemplo passo a passo 2

  1. Abrir a aplicação de tela onde pretende utilizar esta fórmula.
  2. Adicione um novo ecrã em branco selecionando Novo ecrã na barra de comando.
  3. Adicione um botão e defina a respetiva propriedade OnSelect a esta fórmula:
    UpdateContext( { Nome: "Lily", Pontuação: 10 } )