Variables contextuelles
Les variables contextuelles sont similaires aux variables globales, sauf qu’elles sont référencées uniquement à l’écran où vous les créez. Bien qu’il soit possible de définir le nom de l’utilisateur sur une variable à référencer dans votre application, il existe toujours des avantages pour le fait que les variables contextuelles ne peuvent pas être utilisées sur d’autres écrans.
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 avez deux instances de varShowPopUp. Ces deux instances portent le même nom, mais peuvent avoir des valeurs différentes. La valeur de varShowPopUp sur screen1 n’affecte pas la valeur de varShowPopUp sur screen2, car chaque variable contextuelle, même lorsqu’elle porte le même nom, est étendue à l’écran sur laquelle elles sont activées.
En règle générale, la réutilisation des noms de variables n’est pas recommandée, car elle peut être déroutante, mais elle est idéale si vous souhaitez réutiliser les 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})
Note
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. Lors de 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 appelez toujours la source de données chaque fois que cette page s’ouvre. Par conséquent, il est recommandé de stocker des 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 allez découvrir comment stocker des tables de données dans une variable de collection.