Función UpdateContext

Se aplica a: Aplicaciones de lienzo

Crea o actualiza variables de contexto de la pantalla actual.

Información general

Use la función UpdateContext para crear una variable de contexto, que guarda temporalmente un fragmento de información, como el número de veces que el usuario ha seleccionado un botón o el resultado de una operación de datos.

El ámbito de las variables de contexto es una pantalla, lo que significa que no se puede generar una fórmula que haga referencia a una variable de contexto de otra pantalla. Si usó otra herramienta de programación, se puede pensar en una variable de contexto como en una variable local. Use la función Set para trabajar con variables globales que estén disponibles en toda la aplicación.

Power Apps se basa en fórmulas que se recalculan automáticamente a medida que el usuario interactúa con una aplicación. Las variables de contexto no tienen esta ventaja y pueden hacer que la aplicación sea más difícil de crear y comprender. Antes de utilizar una variable de contexto, repase cómo trabajar con variables.

Descripción

Para crear o actualizar una variable de contexto, pase un solo registro a la función UpdateContext. En cada registro, especifique el nombre de una columna, que defina o coincida con el nombre de la variable, y el valor en el que va a establecer esa variable.

  • Si especifica el nombre de una variable que ha definido previamente, UpdateContext establece el valor de la variable en el valor que especifique.
  • Si especifica el nombre de una variable que no existe todavía, UpdateContext crea una variable con ese nombre y establece el valor de esa variable en el valor que especifique.
  • Si previamente se ha definido una variable, pero no se especifica en esta fórmula de UpdateContext específica, su valor sigue siendo el mismo.

Se pueden crear implícitamente variables de contexto mediante la función UpdateContext o Navigate. No es necesaria ninguna declaración explícita. Si quita todas las referencias de UpdateContext y Navigate a una variable de contexto, posteriormente, esa variable de contexto dejará de existir. Para borrar una variable, establezca su valor en el resultado de la función Blank.

Puede ver los valores de las variables, las definiciones y los usos con la vista Variables del menú Archivo en el entorno de creación.

Para hacer referencia a una variable de contexto en una fórmula, se usa el nombre de columna de la variable. Por ejemplo, UpdateContext( { ShowLogo: true } ) crea una variable de contexto llamada ShowLogo y establece su valor en true. Después, puede usar el valor de esta variable de contexto con el nombre ShowLogo en una fórmula. Puede escribir ShowLogo como fórmula para la propiedad Visible de un control de imagen, y mostrar u ocultar ese control en función de si el valor de la variable de contexto es true o false.

Tal y como se muestra en los ejemplos más adelante en este tema, las variables de contexto pueden contener distintos tipos de información, incluidos los siguientes:

  • un valor único
  • un registro
  • una tabla
  • una referencia de objeto
  • el resultado de una fórmula

Una variable de contexto guarda su valor hasta que se cierra la aplicación. Si define una variable de contexto y establece su valor en una pantalla concreta, esa información permanece intacta aunque el usuario cambie a otra pantalla. Una vez que se cierre la aplicación, el valor de la variable de contexto se perderá y deberá volver a crearlo al cargar la aplicación de nuevo.

El ámbito de una variable de contexto se limita a una pantalla. Si desea definir una variable de contexto en una pantalla y modificarla desde otra pantalla, debe crear una fórmula que se basa en la función Navigate. O bien, use una variable global.

UpdateContext no devuelve ningún valor y solo se puede usar en una fórmula de comportamiento.

Sintaxis

UpdateContext( UpdateRecord )

  • UpdateRecord (obligatorio). Registro que contiene el nombre de al menos una columna y un valor para esa columna. Se crea o se actualiza una variable de contexto para cada columna y valor que especifique.

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

  • ContextVariable1 (obligatorio). Nombre de la variable de contexto que se va a crear o actualizar.
  • Value1 (obligatorio). El valor que se asigna a la variable de contexto.
  • ContextVariable2: Value2, ... (opcional). Variables de contexto adicionales que se van a crear o actualizar, y sus valores.

Ejemplos

Fórmula Descripción Resultado
UpdateContext( { Counter: 1 } ) Crea o modifica la variable de contexto Counter y establece su valor en 1. Counter tiene el valor 1. Puede hacer referencia a esa variable con el nombre Counter en una fórmula.
UpdateContext( { Counter: 2 } ) Establece el valor de la variable de contexto Counter del ejemplo anterior en 2. Counter tiene el valor 2.
UpdateContext( { Name: "Lily", Score: 10 } ) Crea o modifica las variables de contexto Name y Score, y establece sus valores en Lily y 10, respectivamente. Name tiene el valor Lily, y Score tiene el valor 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Crea o modifica la variable de contexto Person y establece su valor en un registro. El registro contiene dos columnas, llamadas Name y Address. El valor de la columna Name es Milton, y el valor de la columna Address es 1 Main St. Person tiene el valor del registro { Name: "Milton", Address: "1 Main St" } }.

Haga referencia a este registro como un todo con el nombre Person, o haga referencia a una columna individual de este registro con Person.Name o Person.Address.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) Trabaja con la función Patch para actualizar la variable de contexto Person y establece el valor de la columna Address en 2 Main St. Person ahora tiene el valor del registro { Name: "Milton", Address: "2 Main St" } }.

Ejemplo paso a paso 1

  1. Asigne un nombre a la pantalla predeterminada Origen, agregue otra pantalla y asígnele el nombre Destino.

  2. En la pantalla Origen, agregue dos botones y establezca sus propiedades Text de forma que una sea Inglés y la otra Español.

  3. Establezca la propiedad OnSelect del botón Inglés en esta expresión:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})

  4. Establezca la propiedad OnSelect del botón Español en esta expresión:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})

  5. En la pantalla Destino, agregue una etiqueta y establezca su propiedad Text en esta expresión:
    If(Language="Inglés", "Hello!", "¡Hola!")

  6. En la pantalla Destino, seleccione Formas en la pestaña Insertar y seleccione la flecha Anterior.

  7. Establezca la propiedad OnSelect de la flecha Anterior en esta fórmula:
    Navigate(Source, ScreenTransition.Fade)

  8. En la pantalla Origen, presione F5 y seleccione el botón de cualquiera de estos idiomas.

    En la pantalla Destino, la etiqueta aparece en el idioma correspondiente a botón que ha seleccionado.

  9. Seleccione la flecha Anterior para volver a la pantalla Origen y seleccione el botón del otro idioma.

    En la pantalla Destino, la etiqueta aparece en el idioma correspondiente a botón que ha seleccionado.

  10. Presione Esc para volver al área de trabajo predeterminada.

Ejemplo paso a paso 2

  1. Abra la aplicación de lienzo donde desea utilizar esta fórmula.
  2. Agregue una nueva pantalla en blanco seleccionando Nueva pantalla desde la barra de comandos.
  3. Agregue un botón y establezca su propiedad OnSelect en esta fórmula:
    UpdateContext( { Name: "Lily", Score: 10 } )