PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Type Variant et NULL
  • Type d'un variant
  • Propriété ..Classe sur les variants
  • Sous-éléments nommés
  • Sous-éléments indicés
  • Imbrications des sous-éléments nommés et indicés
Produits
WINDEVWEBDEV - Code ServeurWEBDEV - Code NavigateurWINDEV MobileEtats et Requêtes
Plateformes
WindowsLinuxWindows MobileUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadApple Watch
Langages
JavaPHPAjaxCode Utilisateur (MCU)Langage Externe
Bases de données
HFSQLHFSQL Client/ServeurProcédures stockéesOLE DBODBCAccès Natifs
Le type Variant permet de :
  • stocker n'importe quelle valeur de type simple : booléen, numérique (Monétaire, Réel, Entier, ...), caractères et chaîne de caractères, date (Date, Heure, DateHeure et Durée), ...
  • Versions 19 et supérieures
    stocker des sous-éléments nommés ou indicés.
    Nouveauté 19
    stocker des sous-éléments nommés ou indicés.
    stocker des sous-éléments nommés ou indicés.
  • Versions 15 et supérieures
    stocker n'importe quelle valeur de type complexe : structures, classes, types avancés, tableaux, tableaux associatifs, files, piles et listes.
    Nouveauté 15
    stocker n'importe quelle valeur de type complexe : structures, classes, types avancés, tableaux, tableaux associatifs, files, piles et listes.
    stocker n'importe quelle valeur de type complexe : structures, classes, types avancés, tableaux, tableaux associatifs, files, piles et listes.
  • manipuler la valeur NULL dans le WLangage.
  • stocker des interactions avec les objets ActiveX et la programmation Automation.
Versions 17 et supérieures
WINDEV MobileiPhone/iPad Ce type de variable est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
WINDEV MobileiPhone/iPad Ce type de variable est désormais disponible pour les applications iPhone/iPad.
WINDEV MobileiPhone/iPad Ce type de variable est désormais disponible pour les applications iPhone/iPad.
Versions 18 et supérieures
WINDEVWINDEV MobileUniversal Windows 10 App Ce type de variable est désormais disponible en mode Windows Store apps.
Nouveauté 18
WINDEVWINDEV MobileUniversal Windows 10 App Ce type de variable est désormais disponible en mode Windows Store apps.
WINDEVWINDEV MobileUniversal Windows 10 App Ce type de variable est désormais disponible en mode Windows Store apps.
Versions 21 et supérieures
WINDEVWINDEV MobileUniversal Windows 10 App Ce type de variable est désormais disponible en mode Universal Windows 10 App.
WINDEV MobileApple Watch Ce type de variable est désormais disponible en mode Apple Watch.
Nouveauté 21
WINDEVWINDEV MobileUniversal Windows 10 App Ce type de variable est désormais disponible en mode Universal Windows 10 App.
WINDEV MobileApple Watch Ce type de variable est désormais disponible en mode Apple Watch.
WINDEVWINDEV MobileUniversal Windows 10 App Ce type de variable est désormais disponible en mode Universal Windows 10 App.
WINDEV MobileApple Watch Ce type de variable est désormais disponible en mode Apple Watch.
Versions 22 et supérieures
WINDEVJava Ce type de variable est désormais disponible pour les applications Java.
WINDEV MobileAndroid Ce type de variable est désormais disponible pour les applications Android.
WINDEV MobileWidget Android Ce type de variable est désormais disponible en mode Widget Android.
Nouveauté 22
WINDEVJava Ce type de variable est désormais disponible pour les applications Java.
WINDEV MobileAndroid Ce type de variable est désormais disponible pour les applications Android.
WINDEV MobileWidget Android Ce type de variable est désormais disponible en mode Widget Android.
WINDEVJava Ce type de variable est désormais disponible pour les applications Java.
WINDEV MobileAndroid Ce type de variable est désormais disponible pour les applications Android.
WINDEV MobileWidget Android Ce type de variable est désormais disponible en mode Widget Android.
Exemple
nValeur est un Variant = 10
nValeur = SAI_Saisie1
nValeur = Client.Nom
Syntaxe

Déclaration et affectation d'un type Variant Masquer les détails

<Nom de la variable> est un Variant = <Valeur>

OU


 <Nom de la variable> est un Variant
 <Nom de la variable> = <Valeur>
<Nom de la variable> :
Nom de la variable à déclarer.
<Valeur> :
Valeur à affecter à la variable. Une variable de type variant peut être affectée avec :
  • n'importe quelle valeur littérale,
  • le contenu d'une variable,
  • le contenu d'un champ de type simple,
  • le contenu d'une rubrique.
Remarques

Type Variant et NULL

Pour spécifier qu'une variable de type Variant ne contient pas de valeur, il suffit d'utiliser la constante NULL.
Remarques :
  • pour un type variant, NULL signifie "Pas affecté".
  • pour un type numérique, NULL signifie "égal 0".
nVal est un entier
SI nVal = Null ALORS ... // le test renvoie Vrai car nVal=0
        nVal = 5
        SI nVal = Null ALORS ... // le test renvoie Faux car nVal=5
vVal est un Variant
SI vVal = Null ALORS ... // renvoie Vrai car le variant n'est pas affecté
vVal = 0
SI vVal = Null ALORS ... // renvoie Faux car le variant est affecté  
// avec un entier de valeur 0
vVal = 5
SI vVal = Null ALORS ... // renvoie Faux car le variant est affecté
// avec un entier de valeur 5
vVal est un Variant
vVal = Null
SI vVal = 0 ALORS ... // renvoie Vrai car une variable non affectée
// et une valeur ne sont pas comparables, Vrai est retourné par convention

Type d'un variant

Il est possible de connaître le type d'un variant grâce à la propriété ..Type. La propriété ..Type permet de connaître le type de la valeur stockée dans la variable.
Remarques :
  • La fonction VariantConvertit permet de convertir le type de la valeur stockée dans une variable de type Variant.
  • La fonction TypeVar permet de connaître le type d'une variable (type Variant pour une variable Variant).
vVal est un Variant
TypeVar(vVal)  // renvoie le numéro du type variant
vVal..Type     // renvoie le type de la valeur stockée dans le variant

Propriété ..Classe sur les variants

La propriété ..Classe sur les variables de type Variant permet d'obtenir le nom de la classe utilisée si le variant correspond à une classe.
Versions 19 et supérieures

Sous-éléments nommés

Il est possible d'utiliser directement et sans déclaration des membres sur une variable de type Variant.
Lors d'une affectation d'un membre, si le membre n'existe pas, il est automatiquement créé ; si le membre existe déjà, il est modifié.
Exemple :
Personne est un Variant
Personne.Nom = "DUPONT"
Personne.Prénom = "Michel"
Lors d'une lecture d'un membre, si le membre n'existe pas, il n'est pas créé. Il est possible de tester la présence d'un membre grâce à la propriété ..Existe.
Exemple :
Personne est un Variant
SI PAS Personne.Nom..Existe ALORS
Erreur("Le nom n'a pas été renseigné")
FIN
Si le membre n'existe pas, la valeur renvoyée est Null. Toutefois pour tester explicitement la valeur Null, il est nécessaire d'utiliser la propriété ..Valeur.
Exemple :
Elément est un Variant
SI Elément.MembreInexistant..Valeur = Null ALORS
...
FIN
Les sous-éléments nommés peuvent être manipulés grâce aux propriétés suivantes :
ExisteRenvoie :
  • Vrai si l'élément existe,
  • Faux si l'élément n'existe pas. L'élément n'est pas créé.
NomNom de l'élément
TypeType de l'élément (mêmes valeurs que TypeVar).
ValeurValeur de l'élément.
La propriété ..Membre sur les variables de type Variant permet d'obtenir le tableau des éléments nommés. Ce tableau peut être manipulé par POUR TOUT, la propriété ..Occurrence, l'opérateur [ ], ...
Nouveauté 19

Sous-éléments nommés

Il est possible d'utiliser directement et sans déclaration des membres sur une variable de type Variant.
Lors d'une affectation d'un membre, si le membre n'existe pas, il est automatiquement créé ; si le membre existe déjà, il est modifié.
Exemple :
Personne est un Variant
Personne.Nom = "DUPONT"
Personne.Prénom = "Michel"
Lors d'une lecture d'un membre, si le membre n'existe pas, il n'est pas créé. Il est possible de tester la présence d'un membre grâce à la propriété ..Existe.
Exemple :
Personne est un Variant
SI PAS Personne.Nom..Existe ALORS
Erreur("Le nom n'a pas été renseigné")
FIN
Si le membre n'existe pas, la valeur renvoyée est Null. Toutefois pour tester explicitement la valeur Null, il est nécessaire d'utiliser la propriété ..Valeur.
Exemple :
Elément est un Variant
SI Elément.MembreInexistant..Valeur = Null ALORS
...
FIN
Les sous-éléments nommés peuvent être manipulés grâce aux propriétés suivantes :
ExisteRenvoie :
  • Vrai si l'élément existe,
  • Faux si l'élément n'existe pas. L'élément n'est pas créé.
NomNom de l'élément
TypeType de l'élément (mêmes valeurs que TypeVar).
ValeurValeur de l'élément.
La propriété ..Membre sur les variables de type Variant permet d'obtenir le tableau des éléments nommés. Ce tableau peut être manipulé par POUR TOUT, la propriété ..Occurrence, l'opérateur [ ], ...

Sous-éléments nommés

Il est possible d'utiliser directement et sans déclaration des membres sur une variable de type Variant.
Lors d'une affectation d'un membre, si le membre n'existe pas, il est automatiquement créé ; si le membre existe déjà, il est modifié.
Exemple :
Personne est un Variant
Personne.Nom = "DUPONT"
Personne.Prénom = "Michel"
Lors d'une lecture d'un membre, si le membre n'existe pas, il n'est pas créé. Il est possible de tester la présence d'un membre grâce à la propriété ..Existe.
Exemple :
Personne est un Variant
SI PAS Personne.Nom..Existe ALORS
Erreur("Le nom n'a pas été renseigné")
FIN
Si le membre n'existe pas, la valeur renvoyée est Null. Toutefois pour tester explicitement la valeur Null, il est nécessaire d'utiliser la propriété ..Valeur.
Exemple :
Elément est un Variant
SI Elément.MembreInexistant..Valeur = Null ALORS
...
FIN
Les sous-éléments nommés peuvent être manipulés grâce aux propriétés suivantes :
ExisteRenvoie :
  • Vrai si l'élément existe,
  • Faux si l'élément n'existe pas. L'élément n'est pas créé.
NomNom de l'élément
TypeType de l'élément (mêmes valeurs que TypeVar).
ValeurValeur de l'élément.
La propriété ..Membre sur les variables de type Variant permet d'obtenir le tableau des éléments nommés. Ce tableau peut être manipulé par POUR TOUT, la propriété ..Occurrence, l'opérateur [ ], ...
Versions 19 et supérieures

Sous-éléments indicés

Il est possible d'utiliser directement la variable de type variant comme un tableau de variants. L'utilisation de l'opérateur [ ] crée automatiquement le tableau.
Exemple :
Jours est un Variant
Jours[1] = "lundi"
Jours[2] = "mardi"
Jours[3] = "mercredi"
Jours[4] = "jeudi"
Jours[5] = "vendredi"
Jours[6] = "samedi"
Jours[7] = "dimanche"
Les opérations des tableaux peuvent être directement effectuées sur la variable de type Variant : POUR TOUT, ..Occurrence, opérateur [ ], ...
Nouveauté 19

Sous-éléments indicés

Il est possible d'utiliser directement la variable de type variant comme un tableau de variants. L'utilisation de l'opérateur [ ] crée automatiquement le tableau.
Exemple :
Jours est un Variant
Jours[1] = "lundi"
Jours[2] = "mardi"
Jours[3] = "mercredi"
Jours[4] = "jeudi"
Jours[5] = "vendredi"
Jours[6] = "samedi"
Jours[7] = "dimanche"
Les opérations des tableaux peuvent être directement effectuées sur la variable de type Variant : POUR TOUT, ..Occurrence, opérateur [ ], ...

Sous-éléments indicés

Il est possible d'utiliser directement la variable de type variant comme un tableau de variants. L'utilisation de l'opérateur [ ] crée automatiquement le tableau.
Exemple :
Jours est un Variant
Jours[1] = "lundi"
Jours[2] = "mardi"
Jours[3] = "mercredi"
Jours[4] = "jeudi"
Jours[5] = "vendredi"
Jours[6] = "samedi"
Jours[7] = "dimanche"
Les opérations des tableaux peuvent être directement effectuées sur la variable de type Variant : POUR TOUT, ..Occurrence, opérateur [ ], ...
Versions 19 et supérieures

Imbrications des sous-éléments nommés et indicés

Les sous-éléments nommés et les sous-éléments indicés étant eux-mêmes de type Variant, il est possible de les imbriquer récursivement.
Exemple :
Bibliotheque est un Variant
Bibliotheque.Livre[1].Titre = "Les trois mousquetaires"
Bibliotheque.Livre[1].Auteur = "Alexandre Dumas"
Bibliotheque.Livre[2].Titre = "Les misérables"
Bibliotheque.Livre[2].Auteur = "Victor Hugo"
Nouveauté 19

Imbrications des sous-éléments nommés et indicés

Les sous-éléments nommés et les sous-éléments indicés étant eux-mêmes de type Variant, il est possible de les imbriquer récursivement.
Exemple :
Bibliotheque est un Variant
Bibliotheque.Livre[1].Titre = "Les trois mousquetaires"
Bibliotheque.Livre[1].Auteur = "Alexandre Dumas"
Bibliotheque.Livre[2].Titre = "Les misérables"
Bibliotheque.Livre[2].Auteur = "Victor Hugo"

Imbrications des sous-éléments nommés et indicés

Les sous-éléments nommés et les sous-éléments indicés étant eux-mêmes de type Variant, il est possible de les imbriquer récursivement.
Exemple :
Bibliotheque est un Variant
Bibliotheque.Livre[1].Titre = "Les trois mousquetaires"
Bibliotheque.Livre[1].Auteur = "Alexandre Dumas"
Bibliotheque.Livre[2].Titre = "Les misérables"
Bibliotheque.Livre[2].Auteur = "Victor Hugo"
Version minimum requise
  • Version 14
Documentation également disponible pour…
Commentaires
Propriété ..Classe sur les variants
La propriété ..Classe sur les variables de type Variant permet d'obtenir le nom de la classe ou de la structure utilisée, si le variant correspond à une classe ou à une structure.
=JBO=
25 oct. 2015