PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Présentation
  • Variable globale
  • Variables globales à un projet
  • Variables globales à une fenêtre
  • 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/iPadApple WatchUniversal Windows 10 AppWindows Mobile
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).
Versions 21 et supérieures
Universal Windows 10 App Cette fonctionnalité est disponible en mode Universal Windows 10 App.
Apple Watch Cette fonctionnalité est disponible en mode Apple Watch.
Nouveauté 21
Universal Windows 10 App Cette fonctionnalité est disponible en mode Universal Windows 10 App.
Apple Watch Cette fonctionnalité est disponible en mode Apple Watch.
Universal Windows 10 App Cette fonctionnalité est disponible en mode Universal Windows 10 App.
Apple Watch Cette fonctionnalité est disponible en mode Apple Watch.
Variable globale

Variables globales à un projet

Les variables globales déclarées dans le traitement d'initialisation d'un projet peuvent être utilisées dans tous les traitements :
  • du projet.
  • de la fenêtre ou de la page (traitement de la fenêtre ou de la page, de ses champs et des procédures locales associées).
  • de l'état (traitement 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.
  • Versions 21 et supérieures
    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
    Nouveauté 21
    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
    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
  • Attention : les modifications effectuées sur ces variables globales en code navigateur ne sont pas reportées sur le serveur.
  • Astuce : les variables globales déclarées dans un code serveur peuvent permettre de transmettre des informations au navigateur.
WINDEVWINDEV Mobile

Variables globales à une fenêtre

Les variables globales déclarées dans le traitement de déclaration des globales d'une fenêtre peuvent être utilisées dans tous les traitements :
  • de la fenêtre.
  • des champs de la fenêtre.
  • des procédures locales associées à la fenêtre.
Limites :
  • Les variables globales d'une fenêtre ne peuvent pas être utilisées par ses fenêtres soeurs.
  • Les variables globales déclarées dans une fenêtre fille ne peuvent pas être utilisées dans sa fenêtre mère.
  • Lorsque la fenêtre dans laquelle la variable a été déclarée est fermée, cette variable ne peut plus être utilisée.
Remarque : Utilisation d'une variable globale dans une fenêtre fille de la fenêtre de déclaration
Les variables déclarées globales dans une fenêtre sont visibles dans les fenêtres filles de cette fenêtre dans les cas suivants :
  • Si le mot-clé Externe est utilisé pour déclarer la variable dans la fenêtre fille.
  • Si le nom de la variable est préfixé par le nom de la fenêtre.
  • Si la variable est passée en paramètre à la fenêtre fille.
WEBDEV - Code ServeurWEBDEV - Code Navigateur

Variables globales à une page

WEBDEV - Code Serveur Code serveur
Les variables globales déclarées dans le traitement de déclaration des globales d'une page peuvent être utilisées dans tous les 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.
Attention : les modifications effectuées sur ces variables globales en code navigateur ne sont pas reportées sur le serveur.
Astuce : les variables globales déclarées dans un code serveur peuvent permettre de transmettre des informations au navigateur.
WEBDEV - Code Navigateur Code navigateur
Les variables globales déclarées dans le code de "Chargement (onLoad) de la page" peuvent être utilisées dans tous les 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".
WINDEVWEBDEV - Code ServeuriPhone/iPadWindows Mobile

Variables globales à un état

Les variables globales déclarées dans le traitement "Traitement d'ouverture" d'un état peuvent être utilisées dans tous les 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 le traitement d'initialisation d'une collection de procédures peuvent être utilisées dans tous les 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 recommander 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 le code d'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 traitements dans lesquels elles sont déclarées. En dehors de ces traitements, les variables locales sont inconnues. Ces variables ne pourront pas être partagées par plusieurs traitements.
Par défaut, lors de sa déclaration, une variable est locale.
WEBDEV - Code Navigateur En code navigateur, seuls les types suivants peuvent être utilisés pour déclarer des variables locales :
  • booléen
  • entier
  • réel
  • chaîne
  • tableau d'un des types précédents
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
Versions 23 et supérieures
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">
Nouveauté 23
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">
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