DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Syntaxe WLangage / Déclaration des variables
  • Présentation
  • Variable globale
  • Variables globales à un projet
  • Variables globales à une page
  • Variables globales à un état
  • Variables globales à une collection de procédures
  • Comment utiliser une variable globale depuis un composant
  • Variable globale : Syntaxe
  • Déclarer une ou plusieurs variables globales
  • Variable locale
  • Variable locale : Syntaxe
  • Déclarer une ou plusieurs variables locales
  • Variables locales et globales zombie
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Les variables peuvent être de deux types :
  • Variable locale : utilisable uniquement dans le traitement dans lequel cette variable a été déclarée.
  • Variable globale : utilisable dans tous les traitements dépendant du traitement dans lequel cette variable a été déclarée.
Important : Il ne faut pas déclarer deux variables avec le même nom (notamment une variable globale et une variable locale).
Variable globale

Variables globales à un projet

Les variables globales déclarées dans l'événement "Initialisation" d'un projet peuvent être utilisées dans tous les événements ou traitements :
  • du projet.
  • de la fenêtre ou de la page (événements de la fenêtre ou de la page, de ses champs et des procédures locales associées).
  • de l'état (événements de l'état, de ses champs et des procédures locales associées).
WEBDEV - Code ServeurWEBDEV - Code Navigateur Disponibilité des variables en code Navigateur :
  • Les variables serveur globales au projet sont disponibles dans les codes navigateur uniquement pour les types suivants : Booléen, Entier, Réel, Chaîne.
  • Astuce : les variables globales déclarées dans un code serveur peuvent permettre de transmettre des informations au navigateur.
  • Il est possible de protéger la variable globale au projet afin de ne pas la rendre disponible coté navigateur. Pour cela, il faut utiliser l'attribut Serveur uniquement lors de la déclaration de la variable.
    La syntaxe à utiliser est la suivante :
    NomVariable est un TypeVariable <serveur uniquement>

    ou bien :
    NomVariable est un TypeVariable, serveur uniquement

    Exemple :
    mavariable est un entier <serveur uniquement>
    mavariable1 est un entier, serveur uniquement
WEBDEV - Code Navigateur Synchronisation des variables en code navigateur :
  • Par défaut les modifications effectuées sur les variables globales en code navigateur ne sont pas reportées sur le serveur.
  • Il est possible lors de la déclaration d'une variable globale, de demander sa synchronisation entre le navigateur et le serveur. Dans ce cas la valeur affectée à une variable globale dans un code navigateur, peut être récupérée par la suite dans un code serveur. Pour cela il faut utiliser l'attribut synchronisé navigateur lors de la déclaration de la variable.
    La syntaxe à utiliser est la suivante :
    NomVariable est un TypeVariable <synchronisé navigateur>

    ou bien :
    NomVariable est un TypeVariable, synchronisé navigateur

    Exemple :
    mavariable est un entier <synchronisé navigateur>
    mavariable1 est un entier, synchronisé navigateur
WEBDEV - Code ServeurWEBDEV - Code Navigateur

Variables globales à une page

WEBDEV - Code Serveur Code serveur
Les variables globales déclarées dans l'événement "Déclarations globales" d'une page peuvent être utilisées dans tous les événements ou traitements :
  • de la page.
  • des champs de la page.
  • des procédures locales associées à la page.
Lorsque la page dans laquelle la variable a été déclarée est fermée, cette variable ne peut plus être utilisée.
Disponibilité des variables en code Navigateur : Les variables Serveur globales à une page sont disponibles dans les codes Navigateur de la page uniquement pour les types suivants : Booléen, Entier, Réel, Chaîne.
Astuce : les variables globales déclarées dans un code serveur peuvent permettre de transmettre des informations au navigateur.
Attention : les modifications effectuées sur ces variables globales en code navigateur ne sont pas reportées sur le serveur.
Il est possible de protéger la variable globale à la page afin de ne pas la rendre disponible coté navigateur. Pour cela, il faut utiliser l'attribut Serveur uniquement lors de la déclaration de la variable.
La syntaxe à utiliser est la suivante :
NomVariable est un TypeVariable <serveur uniquement>

ou bien :
NomVariable est un TypeVariable, serveur uniquement

Exemple :
mavariable est un entier <serveur uniquement>
mavariable1 est un entier, serveur uniquement
Synchronisation des variables en code navigateur :
  • Par défaut les modifications effectuées sur les variables globales en code navigateur ne sont pas reportées sur le serveur.
  • Il est possible lors de la déclaration d'une variable globale, de demander sa synchronisation entre le navigateur et le serveur. Dans ce cas la valeur affectée à une variable globale dans un code navigateur, peut être récupérée par la suite dans un code serveur. Pour cela il faut utiliser l'attribut synchronisé navigateur lors de la déclaration de la variable.
    La syntaxe à utiliser est la suivante :
    NomVariable est un TypeVariable <synchronisé navigateur>

    ou bien :
    NomVariable est un TypeVariable, synchronisé navigateur

    Exemple :
    mavariable est un entier <synchronisé navigateur>
    mavariable1 est un entier, synchronisé navigateur
WEBDEV - Code Navigateur Code navigateur
Les variables globales déclarées dans l'événement "Chargement (onLoad) de la page" peuvent être utilisées dans tous les événements ou traitements navigateur :
  • de la page.
  • des champs de la page.
  • des procédures locales associées à la page.
Disponibilité des variables en code Serveur : Les variables Navigateur globales à une page ne sont disponibles dans les codes Serveur de la page.
Astuce : les variables globales déclarées dans un code navigateur peuvent permettre d'échanger des informations entre différents traitements exécutés sur le navigateur.
Remarques :
  • Les variables globales Navigateur ne peuvent pas être initialisées sur la ligne de déclaration.
  • Les variables globales Navigateur peuvent être initialisées avec la valeur d'une variable globale serveur (uniquement pour les types booléen, entier, réel et chaîne).
  • Il est conseillé de désactiver le "cache" de votre navigateur pendant le développement de l'application WEBDEV. En effet, les variables globales sont traduites en JavaScript dans des fichiers ".JS". Si le "cache" est actif, les tests de vos pages peuvent recharger des fichiers correspondant à d'anciennes valeurs de variables.
Pour désactiver le cache de votre navigateur (Microsoft Internet Explorer) :
  1. Recherchez l'option "Options Internet" dans un des menus "Edition", "Affichage" ou "Outils" selon la version d'Internet Explorer.
  2. Dans l'onglet "Général", cliquez sur "Paramètres" de la partie "Fichiers Internet Temporaires".
  3. Cochez "A chaque visite de la page".
WEBDEV - Code Serveur

Variables globales à un état

Les variables globales déclarées dans l'événement "Ouverture" d'un état peuvent être utilisées dans tous les événements ou traitements :
  • de l'état.
  • des champs de l'état.
  • des procédures locales associées à l'état.

Variables globales à une collection de procédures

Les variables globales déclarées dans l'événement "Déclaration" d'une collection de procédures peuvent être utilisées dans tous les événements ou traitements :
  • des différentes procédures de la collection.
  • du projet en cours.

Comment utiliser une variable globale depuis un composant

Le but du composant étant généralement d'être autonome, il n'est pas recommandé d'utiliser une variable globale du projet depuis celui-ci.
La méthode recommandée est cependant la suivante :
  • créez une variable globale dans le composant.
  • créez dans le composant une procédure permettant d'initialiser ces variables globales.
  • depuis l'événement "Initialisation" du projet, et à chaque modification de la valeur des variables globales du projet, appelez cette procédure pour affecter une valeur similaire aux variables globales du composant.
Variable globale : Syntaxe

Déclarer une ou plusieurs variables globales

GLOBAL
<Variables globales>
Détail de la syntaxe
GLOBALDébut de déclaration des variables globales.
<Variables globales>Variables globales à déclarer.
Remarque : Le mot-clé GLOBAL peut être remplacé par le mot-clé GLOBALE ou GLOBALES.
GLOBAL // Toutes les déclarations qui suivent sont des variables globales
Indice est un entier
NomClient est une chaîne
Taux est un réel

LOCAL // Toutes les déclarations qui suivent sont des variables locales
I est un entier 
PrénomClient est une chaîne
Prix est un monétaire
Variable locale
Les variables locales peuvent être utilisées uniquement dans les événements ou traitements dans lesquels elles sont déclarées. En dehors de ces événements ou traitements, les variables locales sont inconnues. Ces variables ne pourront pas être partagées par plusieurs événements ou traitements.
Par défaut, lors de sa déclaration, une variable est locale.
Variable locale : Syntaxe

Déclarer une ou plusieurs variables locales

[LOCAL]
<Variables locales>
Détail de la syntaxe
LOCALDébut de déclaration des variables locales. L'utilisation du mot-clé LOCAL est optionnelle.
<Variables locales>Variables locales à déclarer.

Remarque : Le mot-clé LOCAL peut être remplacé par le mot-clé LOCALE ou LOCALES.
LOCAL // Toutes les déclarations qui suivent sont des variables locales
I est un entier
PrénomClient est une chaîne 
Prix est un monétaire
// Toutes les déclarations qui suivent sont des variables locales
I est un entier
PrénomClient est une chaîne 
Prix est un monétaire
Variables locales et globales zombie
Une variable locale ou globale peut devenir obsolète. Il est ainsi possible de savoir que cet élément ne doit plus être utilisé (mais il n'est pas encore supprimé).
Pour déclarer une variable comme étant obsolète, il suffit d'utiliser l'attribut d'extension <Zombie>.
La syntaxe est la suivante :
<Nom Variable> est un <type de la variable> <zombie [commentaire = "texte"]>
Dans cette syntaxe, le mot-clé optionnel commentaire permet d'indiquer le texte qui sera affiché dans l'erreur de compilation associée à la variable obsolète.
Exemple :
PrénomClient est une chaîne <zombie commentaire = "Ne plus utiliser - utiliser la structure Client">
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
En réponse à JP Block
Toute variable passée en paramètre à une procédure est par défaut passée par adresse. Ce qui signifie que si cette variable est modifiée dans la procédure, elle est donc également modifiée dans le code appelant.
On peut ainsi considéré que la variable est globale, tout du moins entre le code appelant et la procédure elle-même.

Pour passer des paramètres par référence (copie), il suffit soit d'entourer la variable par des parenthèses dans le code appelant lors de l'appel à la procédure ou (et c'est mieux) utiliser le mot clé LOCAL dans la déclaration des paramètres de la procédure. Ainsi, la variable passée en paramètre sera uniquement locale à la procédure. De cette façon, les modifications apportées sur cette variable dans la procédure ne seront pas reportées dans le code appelant.
Maax°(51)°
01 avr. 2010
Variable définie dans une procédure globale
En l'absence de précision, il semble qu'une variable passée à une procédure globale soit Locale à cette procédure.

Cela semble contraire avec une recommendation (blog ?) sur le typage et la définition comme Local des paramètres passés à une procédure globale.
Jean-Pierre BLOCH (
31 mar. 2010

Dernière modification : 17/05/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale