DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Champs, pages et fenêtres / Fonctions de gestion des champs
  • Caractéristiques du champ créé
  • Evénements exécutés
  • Conseil
  • Clonage d'une colonne dans un champ Table
  • Clonage d'un menu
  • Clonage d'un volet d'onglet
  • Spécificités WEBDEV
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
Crée un nouveau champ. Ce nouveau champ est une copie d'un champ existant (y compris pour les colonnes d'un champ Table).
Cette fonction peut être utilisée pour créer un nouveau champ dans une fenêtre, dans une page ou dans un état.
Le nouveau champ est créé obligatoirement dans la même fenêtre (la même page ou le même état) que le champ source.
WINDEV
// Crée un nouveau volet dans un champ Onglet
ChampClone(ONG_MonOnglet[1], "Volet 3")
 
// Crée un champ cloné dans un volet Onglet
// alors que le champ original est dans la fenêtre
ChampClone(SAI_SAISIE1, "ONG_MonOnglet[2].CLONE_SAISIE1")
// Crée un nouveau champ Libellé dans un état (WINDEV, WEBDEV ou WINDEV Mobile)
ChampClone(LIB_Libellé, "Clone", 10.8, 10.8)
xChamp est un Champ
xChamp <- ChampClone(COL_Modèle, "COL_Clone" + i)
xChamp.Largeur = COL_Modèle.Largeur
xChamp.Libellé = "Matière " + i
Syntaxe

Créer un clone de champ dans une fenêtre ou une page Masquer les détails

<Résultat> = ChampClone(<Nom du champ source> , <Nom du champ destination> [, <X> , <Y>])
<Résultat> : Variable de type Champ
WINDEVWEBDEV - Code Serveur Nom de la variable de type Champ à associer au champ cloné.
<Nom du champ source> : Chaîne de caractères
Nom du champ (ou de la colonne) à copier.
Si ce paramètre correspond au nom d'une colonne du champ Table :
  • les paramètres <X> et <Y> sont ignorés.
  • la nouvelle colonne est insérée à droite des autres colonnes du champ Table.
  • le contenu du champ Table est automatiquement vidé.
Dans ce cas, si plusieurs champs Table possèdent des colonnes de même nom, le nom de la colonne doit être préfixé du nom du champ Table : <Nom de la table>.<Nom de la colonne>.
<Nom du champ destination> : Chaîne de caractères
Nom du champ (ou de la colonne) dynamique à créer.
Ce nom doit respecter les règles de nommage d'un nouveau champ utilisées par l'éditeur. Par exemple, il ne doit pas contenir de point, d'espace ou d'apostrophe.
Si ce paramètre correspond au nom d'une colonne du champ Table, le nom de la colonne ne doit pas être préfixé du nom du champ Table.
Il est possible de changer la parenté lors du clonage d'un champ. Ainsi, un champ peut être cloné sur un onglet et associé à cet onglet. Il suffit de préfixer le nom du champ à créer par le nom du champ Onglet (voir exemple). Le fonctionnement est identique pour les champs Tiroir et Boîte à outils.
<X> : Entier optionnel
Abscisse du champ à créer (en pixels).
Si ce paramètre n'est pas spécifié, le champ est créé à la position d'origine du champ source (position initiale connue grâce aux propriétés XInitial et YInitial).
<Y> : Entier optionnel
Ordonnée du champ à créer (en pixels).
Si ce paramètre n'est pas spécifié, le champ est créé à la position d'origine du champ source (position initiale connue grâce aux propriétés XInitial et YInitial).
WINDEVWEBDEV - Code ServeurEtats et RequêtesUniversal Windows 10 AppiPhone/iPadCode Utilisateur (MCU)

Créer un clone de champ dans un état Masquer les détails

<Résultat> = ChampClone(<Nom du champ source de l'état> , <Nom du champ destination> [, <X> , <Y>])
<Résultat> : Variable de type Champ
WINDEVWEBDEV - Code Serveur Nom de la variable de type Champ à associer au champ cloné.
<Nom du champ source de l'état> : Chaîne de caractères
Nom du champ à copier.
<Nom du champ destination> : Chaîne de caractères
Nom du champ dynamique à créer.
<X> : Réel optionnel
Abscisse du champ à créer (en millimètres).
Si ce paramètre n'est pas spécifié, le champ est créé à la position d'origine du champ source (position initiale connue grâce aux propriétés XInitial et YInitial).
<Y> : Réel optionnel
Ordonnée du champ à créer (en millimètres).
Si ce paramètre n'est pas spécifié, le champ est créé à la position d'origine du champ source (position initiale connue grâce aux propriétés XInitial et YInitial).
Remarques

Caractéristiques du champ créé

Le champ créé partage tous les paramètres initiaux du champ source, en particulier :
  • son type (champ de saisie, champ Bouton, champ Table, ...),
  • sa valeur initiale,
  • son (ou ses) groupe(s),
  • son menu contextuel (champ d'une fenêtre),
  • son code (les mêmes traitements sont exécutés),
  • ses liens HFSQL,
  • le raccourci clavier (champ d'une fenêtre),
  • la hauteur et la largeur du champ.
Par contre, le champ créé ne partage pas avec le champ source :
  • les paramètres modifiés après sa création (valeur, couleur, ...),
    WEBDEV - Code Serveur La couleur du champ cloné est la couleur actuelle du champ et non celle de la création du champ.
  • le nom,
  • l'altitude (champ d'une fenêtre ou d'un état),
  • l'ordre de navigation par la touche TAB (champ d'une fenêtre).

Evénements exécutés

L'événement "Initialisation" associé au champ est exécuté.
Le champ n'étant pas connu à la compilation du projet, il est possible de le manipuler grâce aux opérateurs d'indirection.

Conseil

Il est conseillé d'utiliser cette fonction dans l'événement "Déclarations globales" de la fenêtre ou de la page ou dans l'événement "Ouverture" associé à l'état. Cette fonction ne doit pas être utilisée dans l'événement "Initialisation" du champ.
WINDEVWEBDEV - Code ServeuriPhone/iPadJavaCode Utilisateur (MCU)

Clonage d'une colonne dans un champ Table

Dans une fenêtre, lors de l'utilisation de la fonction ChampClone sur une colonne du champ Table, le champ Table manipulé est entièrement vidé lors de la création de la nouvelle colonne.
WINDEVAndroidJavaCode Utilisateur (MCU)

Clonage d'un menu

Il est possible de cloner un menu grâce à la fonction MenuClone.
WINDEV

Clonage d'un volet d'onglet

Lors de l'utilisation de la fonction ChampClone sur un volet d'onglet, le volet d'onglet et tous les champs présents sur ce volet d'onglet sont clonés (y compris le code associé). Si dans le volet d'onglet originel, des traitements manipulaient les champs présents sur ce volet, dans le volet d'onglet cloné, ces traitements manipuleront automatiquement les champs du volet cloné.
WEBDEV - Code Serveur

Spécificités WEBDEV

  • Un champ et son clone doivent être dans la même page.
  • Les champs pouvant être clonés sont :
    • Les champs superposables.
    • Les champs présents dans une Zone de Texte Riche.
    • Les colonnes de table.
  • Clonage d'un champ présent dans une Zone de Texte Riche :
    • Le champ cloné peut être ajouté dans n'importe quelle Zone de Texte Riche de la page.
    • Le champ cloné ne peut pas être ajouté dans un Libellé riche (libellé d'interrupteur ou de sélecteur par exemple).
  • Clonage d'un champ superposable :
    • Le champ cloné est également superposable.
    • Le champ cloné n'a aucun ancrage.
    • Le champ cloné est ajouté au même conteneur que le champ source.
  • Clonage d'un champ d'une Zone répétée : Un champ d'un Zone répétée doit être cloné dans une Zone répétée.
  • Les pages en mode "Mode compatible avec la version 16" ne permettent pas le clonage de champs.
  • L'utilisation d'une indirection pour manipuler le champ cloné impose au champ d'avoir l'option "Support des indirections (ralentit l'exécution)" cochée (onglet "Détail" de la fenêtre de description du champ).
Liste des exemples associés :
La fonction ChampClone Exemples unitaires (WINDEV) : La fonction ChampClone
[ + ] Utilisation des fonctions ChampClone et ChampSupprime.
Composante : wd300vm.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
WD Mobile avec plateforme "Android" (V24)
Pour une compatibilité WD mobile "Android", il faut codé :

xChamp est un Champ
ChampClone(COL_Modèle, "COL_Clone" + i)
xChamp <- {"COL_Clone" + i,indChamp}

au lieu de

xChamp est un Champ
xChamp <- ChampClone(COL_Modèle, "COL_Clone" + i)

En effet, la récupération d'une référence au nouveau champ par la syntaxe <- de la fonction ChampClone() génère une erreur de Type (JAVA)...
Patrick MOIRE
18 sep. 2019

Dernière modification : 25/05/2022

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