Variables contextuelles

Effectué

Les variables contextuelles sont similaires aux variables globales, sauf qu’elles sont référencées uniquement dans l’écran où vous les avez créées. Bien qu’il soit possible de définir le nom de l’utilisateur sur une variable à référencer dans l’ensemble de votre application, le fait que les variables contextuelles ne peuvent pas être utilisées sur d’autres écrans présente toujours des avantages.

Il arrive que vous ayez besoin d’utiliser des fonctionnalités basées sur les variables dans plusieurs écrans. Par exemple, de nombreuses applications utilisent des boîtes de dialogue contextuelles pour vous demander de confirmer la suppression d’un enregistrement. Une méthode courante de mise en œuvre consiste à définir une variable contextuelle sur true lorsque l’utilisateur sélectionne le bouton de suppression. Pour cela, vous devez définir la propriété OnSelect du bouton sur ce qui suit.

UpdateContext({varShowPopUp: true})

Ensuite, vous définissez la propriété Visible des contrôles contextuels sur varShowPopUp. Cette procédure est similaire à celle de l’exemple des variables globales. La principale différence se situe au niveau de la réutilisation. Si vous copiez les contrôles (à l’aide de Ctrl+C) dans un autre écran, vous aurez deux instances de varShowPopUp. Ces deux instances portent le même nom, mais peuvent avoir des valeurs différentes. La valeur de varShowPopUp de l’écran 1 n’affecte pas la valeur de varShowPopUp de l’écran 2, car toutes les variables contextuelles, même lorsqu’elles portent le même nom, sont limitées à l’écran dans lequel elles se trouvent.

En général, il n’est pas recommandé de réutiliser les noms de variables, car cela peut porter à confusion. Toutefois, cela fonctionne très bien si vous souhaitez réutiliser des fonctionnalités indépendamment sur différents écrans.

Si vous ne savez pas si vous devez utiliser des variables globales ou des variables contextuelles, en général, les variables globales sont le choix par défaut. Les variables globales sont disponibles partout, ce qui en fait les plus flexibles.

La fonction UpdateContext a un comportement unique, qui vous permet de déclarer plusieurs variables à la fois. Cela n’est pas possible avec la fonction Set. Pour créer plusieurs variables contextuelles avec une même formule, placez une virgule entre les variables.

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

Remarque

Dans le module précédent, nous avons mentionné que l’utilisation de la fonction User() inline ralentirait inutilement votre application. C’est pour cette raison qu’une variable globale doit être utilisée OnStart. Bien que l’utilisation d’une variable contextuelle pour stocker les informations utilisateur améliore les performances par rapport à l’utilisation inline de la fonction User(), elle est finalement moins performante qu’une variable globale, car vous continuerez à appeler la source de données à chaque ouverture de cette page. C’est pourquoi il est recommandé de stocker les informations utilisateur dans une variable globale.

Pour faire de même avec des variables globales, utilisez ce qui suit :

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

Dans l’unité suivante, vous verrez comment stocker des tables de données dans une variable de collection.