DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Champs, pages et fenêtres / Fonctions de gestion des champs
  • Déclaration d'une variable de type Champ
  • Affectation d'une variable de type Champ
  • Utilisation d'une variable de type Champ dans une procédure
  • Optimisation des traitements avec indirection
  • Propriétés associées à une variable de type Champ
  • Fonctions manipulant une variable de type Champ
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
Le type Champ permet de définir toutes les caractéristiques d'un champ. Ce champ peut être un champ créé dynamiquement avec la fonction ChampCrée ou un champ existant dans une fenêtre ou un état.
AndroidWidget AndroidJava La fonction ChampCrée n'est pas disponible.
Remarque : Pour plus de détails sur la déclaration de ce type de variable et l'utilisation des propriétés WLangage, consultez Déclaration d'une variable.
Exemple
WINDEV
// Création dynamique d'un champ dans une fenêtre
c est un Champ
c <- ChampCrée("BOUTON_1", typBouton, 30, 40, 140, 20) // Attention, pas '='
c.Libellé = "Cliquez moi"
c.Traitement[trtClic] = maProcédure
Remarques

Déclaration d'une variable de type Champ

Pour déclarer une variable de type Champ, il suffit d'utiliser la syntaxe suivante :
<Nom de la variable> est un Champ
Exemple :
c est un Champ
Lors de la déclaration d'une variable de type Champ, il est possible de préciser le type du champ via la syntaxe suivante :
<Nom de la variable> est un Champ <type champ = <Type du champ>>
où <Type de champ> correspond à la constante correspondant au type de champ à créer (voir ci-dessous).
Exemple :
MonChamp est un Champ <type champ = typBouton>
Les différentes constantes utilisables pour définir le type du champ sont les suivantes :
typActiveX17Champ ActiveX
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typAgenda76Champ Agenda
AndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typAsc18Champ Ascenseur
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typAttribut41Attribut d'un champ Zone répétée
WINDEVWidget AndroidJava
Non disponible.
typBandeauDéfilant122 Champ Bandeau défilant
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typBarreDeNavigation117Champ Barre de navigation
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typBarreOutils22Champ Barre d'outils
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typBoîteAOutils29Champ Boîte à outils
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typBouton4Champ Bouton
typCalendrier47Champ Calendrier
Widget Android Non disponible.
typCaptcha82Champ Captcha
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typCarte92Champ Carte
Widget AndroidJava
Non disponible.
typCarrousel37Champ Carrousel
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typCaseBarreDeMessage40002Case de barre de message
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typCellule50014Champ Cellule
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typCelluleCSSGrid147Champ Cellule présent dans un champ Grille CSS.
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typCelluleDeBarreDeNavigation115Champ Cellule présent dans un champ Barre de navigation.
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typCelluleDisposition127Cellule d'un champ Disposition.
LinuxWidget Android Non disponible.
typCelluleFlexBox139Cellule d'un champ FlexBox.
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typCelluleMiseEnPage84Champ Cellule utilisé pour la mise en page de type Zoning.
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typChampFormaté50001Champ d'affichage formaté
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typChampHTML50002Champ HTML
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typChampMenu50007Menu d'une page WEBDEV
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typChampMenuContextuel141Menu contextuel dans une page WEBDEV
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typCheminDeNavigation50011Champ Chemin de navigation
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typClicage30001Champ Image cliquable (champ Image d'une fenêtre ayant l'option "Cette image est une zone de cliquage" cochée).
WEBDEV - Code ServeuriPhone/iPadWidget IOSJava
Non disponible.
typCodeBarres26Champ Code-barres
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typColonne56Colonne de table
WINDEVWidget AndroidJava Non disponible.
typComboAVS10001Champ Combo avec saisie
Widget AndroidiPhone/iPadWidget IOS Non disponible.
typComboSNS10002Champ Combo sans saisie
Widget AndroidiPhone/iPadWidget IOS Non disponible.
typComposantWeb121Champ Composant Web
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typConférence25Champ Conférence
WEBDEV - Code ServeurWidget AndroidJava
Non disponible.
typConteneurNatif125Champ Conteneur natif
WEBDEV - Code ServeurWidget AndroidJava
Non disponible.
typCube38Champ Cube
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typDate20002Champ de saisie de type date
Widget Android Non disponible.
typDisposition126Champ Disposition
LinuxWidget Android Non disponible.
typDurée20006Champ de saisie de type durée
Widget Android Non disponible.
typEditeurDeDiagrammes130Champ Editeur de diagrammes
LinuxAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typÉditeurCode146Champ Editeur de code
WEBDEV - Code ServeurLinuxAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typEditeurHtml134Champ Editeur HTML
WEBDEV - Code ServeurLinuxWidget AndroidWidget IOSJava
Non disponible.
typEditeurImages124Champ Editeur d'images
WEBDEV - Code ServeurLinuxAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typEditeurImagesMobile138Champ Editeur d'images sur Mobile
WINDEVWEBDEV - Code ServeurWindowsLinuxWidget AndroidWidget IOSJava
Non disponible.
typFen1Fenêtre
WEBDEV - Code Serveur Non disponible.
typFenêtreInterne31Fenêtre Interne
WEBDEV - Code ServeurWidget AndroidiPhone/iPadWidget IOS Non disponible.
typFil118Champ Fil
WEBDEV - Code ServeurLinuxAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typFlash50008Champ de type Flash
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typFlex48Champ de type Flex
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typForme20Champ Forme/Dessin
AndroidWidget AndroidiPhone/iPadWidget IOS
Non disponible.
typGantt110Colonne de type Diagramme de Gantt (champ Table ou Table hiérarchique).
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typGraphe33Champ Graphe d'une fenêtre / page
AndroidWidget AndroidJava
Non disponible.
typGrp58Groupe de champs
Widget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typHeure20003Champ de saisie de type heure
Widget Android Non disponible.
typHTML23Libellé HTML
AndroidWidget AndroidiPhone/iPadWidget IOS
Non disponible.
typIFrame50013Champ IFrame
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typImage8Champ Image
typInterr5Champ Interrupteur
Widget Android Non disponible.
typInterrupteurABascule132Champ Interrupteur à bascule
Widget AndroidJava Non disponible.
typJauge10Champ Jauge
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
typJaugeInfinie113Champ Jauge infinie
WEBDEV - Code ServeurWidget AndroidJava Non disponible.
typJava50004Champ Java
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typKanban140Champ Kanban
Widget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typLecteurPDFChamp Lecteur PDF
WEBDEV - Code ServeurLinuxAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typLibellé3Champ Libellé
typLibelléHTML50006Champ Libellé HTML
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typLien50005Champ Lien
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typLienSocial103Champ Réseau social
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typLigne50003Champ Ligne
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typListe7Champ Liste
Widget Android Non disponible.
typListeImage27Champ Liste image
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOS
Non disponible.
typListeKanban142Champ Liste de Kanban
Widget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typMapArea50010Champ Image cliquable
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typModèleDeChamp43Champ de type Modèle de champs.
typMonétaire20005Champ de saisie de type monétaire
Widget Android Non disponible.
typMultimédia39Champ Multimédia
WEBDEV - Code ServeurWidget AndroidJava Non disponible.
typNotation85Champ Notation
LinuxAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typNoteRepositionnable119Champ Note repositionnable
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typNum20004Champ de saisie de type numérique
Widget Android Non disponible.
typOle15Champ OLE
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typOnglet16Champ Onglet
Widget Android Non disponible.
typOptionInterrupteurABascule133Option d'un champ Interrupteur à bascule
Widget AndroidJava Non disponible.
typOptionMenu40001Option de menu
Widget AndroidiPhone/iPadWidget IOSJava Non disponible.
typOrganigramme86Champ Organigramme
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typPage1Page
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typPageCornée79Champ Page cornée
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typPageInterne31Page interne
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typPanneau131Champ Panneau dockable
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typPlanDeBandeauDéfilant123Plan associé à un champ Bandeau défilant
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typPlanDeSite45Champ Plan du site
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typPlanning80Planning
AndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typPopup90Page popup
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typPotentiomètre12Champ Potentiomètre
AndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typPotentiomètreIntervalle72Potentiomètre d'intervalle
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typPotentiomètreRotatif13Potentiomètre rotatif
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typRangeSlider72Champ Range Slider
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typRéglette50009Champ Réglette
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOS
Non disponible.
typRegroupementRubanRegroupement de ruban
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typRuban87Champ Ruban
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typRuptureRupture dans un champ Zone répétée
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typSélect6Champ Sélecteur
typSéparateur28Champ Séparateur
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typSilverlight46Champ SilverLight
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typSpin11Champ Spin
WEBDEV - Code ServeurWidget AndroidiPhone/iPadWidget IOS
Non disponible.
typSuperChamp40Superchamp
typTable9Champ Table
Widget Android Non disponible.
typTableauCroiséDynamique102Champ Tableau croisé dynamique
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typTableauDeBord111Champ Tableau de bord
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
typTableHierarchique35Champ Table hiérarchique
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
typTableur114Champ Tableur
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typTexte20001Champ de saisie de type texte
Widget Android Non disponible.
typTiroir34Champ Tiroir
AndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typTraitementDeTexte120Champ Traitement de texte
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typTreeMap74Champ TreeMap
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typTreeView19Champ Arbre
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
typUpload73Champ Upload
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typVidéo78Champ Vidéo
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typVignette50012Champ Vignette
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typWebCam24Champ Web Camera
AndroidWidget AndroidiPhone/iPadWidget IOS
Non disponible.
typXaml36Champ Xaml
WEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWidget IOSJava
Non disponible.
typZoneMultiligne97Champ Zone multiligne
WINDEVWEBDEV - Code ServeurWindowsLinuxAndroidWidget AndroidJava
Non disponible.
typZoneRépétée30Champ Zone répétée
Widget Android Non disponible.
typZoneRépétéeLinéaire77Champ Zone répétée linéaire
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava Non disponible.
typZoneTexteRiche109Champ Zone de texte
WINDEVAndroidWidget AndroidiPhone/iPadWidget IOSJava Non disponible.
Remarque : Pour ne plus associer un champ à une variable de type Champ, il suffit d'utiliser la fonction VariableRAZ.

Affectation d'une variable de type Champ

Une variable de type Champ peut être utilisée pour manipuler :
  • un champ existant dans une fenêtre ou un état.
  • WINDEV un champ créé avec la fonction ChampCrée.
L'affectation d'une variable de type Champ doit être réalisée avec l'opérateur '<-'.
Exemples :
// Affectation avec un champ existant
c est un Champ
c <- SAI_Saisie1
// Affectation en utilisant l'indirection
// La variable référence le champ SAI_SAISIE2
c <- {"SAI_SAISIE2"}
WINDEV
// Affectation avec un champ créé avec la fonction ChampCrée
c est un Champ
c <- ChampCrée("BOUTON_1", typBouton, 30, 40, 140, 20)
Attention : L'opérateur '=' ne doit pas être utilisé pour l'affectation d'une variable de type Champ. Cet opérateur permet de transférer la valeur d'un champ dans un autre champ de même type. Par exemple :
// Affectation avec un champ existant
c est un Champ
c <- SAI_Saisie1

// Modification de la valeur 
c = SAI_Saisie3 // Code équivalent : SAI_Saisie1.Valeur = SAI_Saisie3.Valeur
c = "Texte" // Code équivalent : SAI_Saisie1.Valeur = "Texte"
Remarque : Pour savoir si la variable de type Champ a été affectée, utilisez la propriété Type sur la variable. Exemple :
PROCÉDURE VariableChampEstAffecté(varChamp est un Champ) : booléen
// But :  vérifier si un champ a bien été affecté à une variable de type Champ 
sType est un entier
QUAND EXCEPTION DANS
	sType = varChamp..Type
FAIRE
	RENVOYER Faux
FIN
RENVOYER Vrai

Utilisation d'une variable de type Champ dans une procédure

Le type Champ peut être un paramètre d'une procédure.
Méthode 1 : Utilisation de la syntaxe sans préciser le type du champ :
  • le code de la procédure est du type :
    PROCÉDURE MaProcédure(C est un Champ)
    C = "Il est " + HeureSys()
  • l'appel de la procédure est du type :
    MaProcédure(SAI_Saisie1)
Dans ce cas, si le type du champ n'est pas celui attendu, aucune vérification n'est effectuée à la compilation.
Méthode 2 : Utilisation de la syntaxe précisant le type de champ utilisé :
  • le code de la procédure est du type :
    PROCÉDURE MaProcédure(C est un Champ <type champ = typSaisie>)
    C = "Il est " + HeureSys()
  • l'appel de la procédure est du type :
    MaProcédure(SAI_Saisie1)
Avantage : Si l'appel de la procédure utilise un champ d'un type différent de celui attendu, une erreur de compilation est affichée : "Le passage du champ en paramètre n'est pas compatible avec le champ attendu."

Optimisation des traitements avec indirection

Le type Champ peut être utilisé pour optimiser les traitements utilisant les indirections. Il est possible par exemple d'écrire :
C est un Champ <-{s, indChamp}
C.Largeur = 10
C.Hauteur = 20
plutôt que le code suivant :
{s, indChamp}..Largeur = 10
{s, indChamp}..Hauteur = 20

Propriétés associées à une variable de type Champ

Le type Champ permet de manipuler tous les types de champs d'une fenêtre ou d'un état. Les propriétés disponibles dépendent du type de champ manipulé.
Ainsi, si une variable de type Champ est utilisée pour manipuler un champ de saisie, toutes les propriétés WLangage disponibles sur le champ de saisie sont utilisables sur la variable de type Champ. En spécifiant le type du champ dès la déclaration de la variable de type Champ, seules les propriétés du type de champ indiqué sont proposées sous l'éditeur de code.
Pour connaître les propriétés d'un champ, consultez la page d'aide du champ : le lien "Voir aussi" permet d'accéder à toutes les propriétés du champ. Pour plus de détails, consultez Champs d'une fenêtre.

Fonctions manipulant une variable de type Champ

Toutes les fonctions WLangage manipulant des champs peuvent être utilisées sur une variable de type Champ. Bien entendu, seules les fonctions WLangage correspondant au type de champ manipulé sont disponibles. En spécifiant le type du champ dès la déclaration de la variable de type Champ, seules les fonctions manipulant le type de champ indiqué sont proposées sous l'éditeur de code.
Ainsi, il est possible d'utiliser les fonctions TableXXX sur une variable de type Champ manipulant un champ Table.
Version minimum requise
  • Version 19
Documentation également disponible pour…
Commentaires
Vérifier si un champ est affecté à une variable de type champ
Je vous propose une procédure pour effectuer le contrôle d'affectation.

PROCÉDURE VariableChampEstAffectée(varChamp est un Champ) : booléen

// But: vérifier si un champ a bien été affecté à une variable de type champ

nType est un entier

QUAND EXCEPTION DANS
nType = varChamp..Type
FAIRE
RENVOYER Faux
FIN

RENVOYER Vrai

:-)
=JBO=
26 juil. 2024
"Libérer" la référence à un champ
Après avoir affecté un champ à une variable de type champ, pour mettre un terme à cette affectation, on peut utiliser la fonction WLangage VariableRAZ().
=JBO=
26 juil. 2024

Dernière modification : 19/08/2024

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