Função UpdateContext

Aplica-se a: Aplicativos de tela

Cria ou atualiza uma ou mais variáveis de contexto da tela atual.

Visão Geral

Use a função UpdateContext para criar uma variável de contexto que armazena temporariamente uma informação, como o número de vezes que o usuário selecionou um botão ou o resultado de uma operação de dados.

Variáveis de contexto limitam-se a uma tela, o que significa que você não pode criar uma fórmula que se refere a uma variável de contexto em outra tela. Se já tiver usado outra ferramenta de programação, você poderá pensar uma variável de contexto como sendo semelhante a uma variável local. Use a função Set para trabalhar com variáveis globais que estão disponíveis em seu aplicativo.

O Power Apps é baseado em fórmulas que se recalculam automaticamente conforme a interação do usuário com o aplicativo. As variáveis de contexto não oferecem esse benefício e podem fazer com que seja mais difícil criar e entender seu aplicativo. Antes de usar uma variável de contexto, consulte Como trabalhar com variáveis.

Descrição

Para criar ou atualizar uma variável de contexto, passe um único registro para a função UpdateContext. Em cada registro, especifique o nome de uma colunaque define ou corresponde ao nome da variável e o valor para o qual você deseja definir essa variável.

  • Se você especificar o nome de uma variável definida anteriormente, UpdateContext definirá o valor da variável como o valor que você especificar.
  • Se você especificar o nome de uma variável que ainda não existe, UpdateContext criará uma variável com o mesmo nome e definirá o valor da variável como o valor que você especificar.
  • Se você tiver definido uma variável anteriormente e não especificá-la nesta fórmula UpdateContext, seu valor permanecerá o mesmo.

Variáveis de contexto são criadas implicitamente, usando a função UpdateContext ou Navigate. Não há nenhuma declaração explícita necessária. Se você remover todas as referências UpdateContext e Navigate para uma variável de contexto, essa variável de contexto deixará de existir. Para limpar uma variável, defina seu valor como o resultado da função Blank.

Você pode ver os valores, definições e usos de suas variáveis com o modo de exibição Variáveis no menu Arquivo no ambiente de criação.

Você faz referência a uma variável de contexto em uma fórmula usando o nome da coluna da variável. Por exemplo, UpdateContext( { ShowLogo: true } ) cria uma variável de contexto chamada ShowLogo e define seu valor como true. Você pode usar o valor dessa variável de contexto usando o nome ShowLogo em uma fórmula. Você pode escrever ShowLogo como a fórmula para a propriedade Visible do controle Image e exibir ou ocultar tal controle com base no valor da variável de contexto, ou seja, se ele é true ou false.

Como mostram os exemplos neste tópico, variáveis de contexto podem conter vários tipos de informações, incluindo:

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

Uma variável de contexto mantém seu valor até o aplicativo ser fechado. Se você definir uma variável de contexto e configurar seu valor em uma determinada tela, essas informações permanecerão intactas, mesmo se o usuário alternar para uma tela diferente. Depois que o aplicativo for fechado, o valor da variável de contexto será perdido e deverá ser recriado quando o aplicativo for carregado novamente.

Toda variável de contexto é vinculada a uma tela. Se quiser definir uma variável de contexto em uma tela e modificar essa variável em outra tela, você deverá criar uma fórmula que se baseie na função Navigate. Ou use uma variável global.

UpdateContext não tem nenhum valor retornado, e você pode usá-lo somente em uma fórmula de comportamento.

Sintaxe

UpdateContext( UpdateRecord )

  • UpdateRecord - obrigatório. Um registro 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 valor que você especificar.

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

  • ContextVariable1 - obrigatório. O nome de uma variável de contexto para criar ou atualizar.
  • Value1 - obrigatório. O valor a ser atribuído à variável de contexto.
  • ContextVariable2: Value2, ... - opcional. Variáveis de contexto adicionais para criar ou atualizar e seus valores.

Exemplos

Fórmula Descrição Resultado
UpdateContext( { Counter: 1 } ) Cria ou modifica a variável de contexto Counter, definindo seu valor como 1. Counter tem o valor 1. Você pode referenciar essa variável usando o nome Counter em uma fórmula.
UpdateContext( { Counter: 2 } ) Define o valor da variável de contexto Counter do exemplo anterior para 2. Counter tem o valor 2.
UpdateContext( { Name: "Lily", Score: 10 } ) Cria ou modifica as variáveis de contexto Name e Score, definindo seus valores como Lily e 10, respectivamente. Name tem o valor Lily, e Score tem o valor 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Cria ou modifica a variável de contexto Person, definindo seu valor como um registro. O registro contém duas colunas, chamadas Name e Address. O valor da coluna Name é Miltone o valor da coluna Address é 1 Main St. Person tem o valor do registro { Name:"Milton", Address: "1 Main St" } }.

Fazer referência a esse registro como um todo com o nome Person, ou fazer referência a uma coluna individual desse registro com Person.Name ou Person.Address.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) Funciona com a função Patch para atualizar a variável de contexto Person, definindo o valor da coluna Address como 2 Main St. Person agora tem o valor de registro { Name: "Milton", Address: "2 Main St" } }.

Exemplo passo a passo 1

  1. Nomeie a tela padrão como Fonte, adicione outra tela e nomeie-a como Destino.

  2. Na tela Fonte, adicione dois botões e defina suas propriedades Text para que uma diga inglês e a outra diga espanhol.

  3. Defina a propriedade OnSelect do botão inglês para esta expressão:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})

  4. Defina a propriedade OnSelect do botão espanhol para esta expressão:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})

  5. Na tela Destino, adicione um rótulo e defina sua propriedade Text para esta expressão:
    If(Language="English", "Hello!", "Hola!")

  6. Na tela Destino, selecione Formas na aba Inserir e clique na seta Voltar.

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

  8. Na tela Fonte, pressione F5 e selecione o botão para qualquer idioma.

    Na tela Destino, o rótulo é exibido no idioma que corresponde ao botão que você selecionou.

  9. Selecione a seta Voltar para retornar para a tela Fonte e, em seguida, selecione o botão do outro idioma.

    Na tela Destino, o rótulo é exibido no idioma que corresponde ao botão que você selecionou.

  10. Pressione Esc para retornar ao espaço de trabalho padrão.

Exemplo passo a passo 2

  1. Abra o aplicativo de tela onde deseja usar esta fórmula.
  2. Adicione uma nova tela em branco selecionando Nova tela na barra de comando.
  3. Adicione um botão e defina a propriedade OnSelect para esta fórmula:
    UpdateContext( { Name: "Lily", Score: 10 } )