Variables contextuales

Completado

Las variables contextuales son parecidas a las variables globales, salvo que solo se puede hacer referencia a ellas en la pantalla donde se hayan creado. Si bien se puede establecer el nombre del usuario en una variable para poder hacer referencia a él en cualquier parte de la aplicación, el hecho de que no se puedan usar variables contextuales en otras pantallas sigue teniendo sus ventajas.

A veces, existe una funcionalidad que se quiere usar en varias pantallas que se controlan mediante variables. Por ejemplo, muchas aplicaciones usan cuadros de diálogo emergentes para confirmar operaciones como la eliminación de un registro. Un modo habitual de implementar esto es establecer una variable contextual en verdadero cuando el usuario seleccione el botón Eliminar. Para lograrlo, hay que establecer la propiedad OnSelect del botón del siguiente modo.

UpdateContext({varShowPopUp: true})

Luego debe establecer la propiedad Visible de los controles emergentes en varShowPopUp. Este ejemplo es igual al de las variables globales. La diferencia principal es la reutilización. Si copia los controles (Ctrl+C) en otra pantalla, tendrá dos instancias de varShowPopUp. Estas dos instancias usan el mismo nombre, pero pueden tener valores diferentes. El valor de varShowPopUp en la pantalla1 no afecta al valor de varShowPopUp en la pantalla2, ya que cada variable contextual, aun teniendo el mismo nombre, está limitada a la pantalla en la que se encuentra.

Normalmente, reutilizar los nombres de variable no es muy aconsejable porque puede resultar confuso, pero es fantástico si se quiere reutilizar la funcionalidad de forma independiente en distintas pantallas.

Si tiene dudas sobre si debe utilizar variables globales o contextuales, las variables globales suelen ser la solución predeterminada. Las variables globales están disponibles en todas partes, lo que las hace más flexibles.

Un comportamiento único de la función UpdateContext es que se puede declarar más de una variable a la vez. Esto no es posible con la función Set. Para crear más de una variable de contexto con una única fórmula, use una coma entre las variables.

UpdateContext({varCount: 1, varActive: true, varName: User().FullName})

Nota

En el módulo anterior, mencionamos que el uso de la función User() en línea ralentizará innecesariamente su aplicación y, por esa razón, se debe usar una variable global OnStart. Si bien el uso de una variable contextual para almacenar la información del usuario mejorará el rendimiento en comparación con el uso en línea de la función User(), en última instancia, es menos eficaz que una variable global, ya que seguirá llamando al origen de datos cada vez que se abra esa página. Como tal, se recomienda almacenar la información del usuario en una variable global.

Para hacer lo mismo con las variables globales, podría usar lo siguiente.

Set(varCount, 1);Set(varActive, true);Set(varName, User().FullName)

En la siguiente unidad aprenderemos a almacenar tablas de datos en una variable de colección.