Variables contextuales

Completado

Las variables contextuales son similares a las variables globales, salvo que solo se hace referencia a ellas en la pantalla en la que se crean. Aunque es posible establecer el nombre del usuario en una variable a la que hacer referencia en toda la aplicación, todavía hay ventajas en el hecho de que no se pueden usar variables contextuales en otras pantallas.

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 (mediante Ctrl+C) en otra pantalla, tiene dos instancias de varShowPopUp. Estas dos instancias usan el mismo nombre, pero pueden tener valores diferentes. El valor de varShowPopUp en screen1 no afecta al valor de varShowPopUp en screen2 porque cada variable contextual, incluso cuando tienen el mismo nombre, se limitan a la pantalla en la que se encuentran.

Normalmente, no se recomienda reutilizar nombres de variables porque puede resultar confuso, pero es excelente si desea 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})

Note

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. Aunque el uso de una variable contextual para almacenar información de usuario mejora el rendimiento en comparación con el uso directo de la función User(), en última instancia es menos eficiente que una variable global, ya que se seguirá llamando al origen de datos cada vez que se abra esa página. Por lo tanto, se recomienda almacenar 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 unidad siguiente, obtendrá información sobre cómo almacenar tablas de datos en una variable de recopilación.