PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Caractéristiques du champ créé
  • Evénements exécutés
  • Conseil
  • Clonage d'une colonne dans un champ Table
  • Spécificités WEBDEV
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
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 ou dans un état.
Le nouveau champ est créé obligatoirement dans la même fenêtre (ou le même état) que le champ source.
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.
WEBDEV - Code Serveur Dans cette version, cette fonction peut être utilisée uniquement pour créer un nouveau champ dans un état. Le nouveau champ est créé obligatoirement dans le même état que le champ source.
Versions 16 et supérieures
Linux Cette fonction est désormais disponible en Linux, pour les états et les fenêtres.
Nouveauté 16
Linux Cette fonction est désormais disponible en Linux, pour les états et les fenêtres.
Linux Cette fonction est désormais disponible en Linux, pour les états et les fenêtres.
Versions 17 et supérieures
WindowsLinux Cette fonction est désormais disponible pour cloner les volets d'onglet.
Nouveauté 17
WindowsLinux Cette fonction est désormais disponible pour cloner les volets d'onglet.
WindowsLinux Cette fonction est désormais disponible pour cloner les volets d'onglet.
Versions 21 et supérieures
WEBDEV - Code Serveur Cette fonction est désormais disponible pour les champs des pages WEBDEV.
Nouveauté 21
WEBDEV - Code Serveur Cette fonction est désormais disponible pour les champs des pages WEBDEV.
WEBDEV - Code Serveur Cette fonction est désormais disponible pour les champs des pages WEBDEV.
// 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
WEBDEV - Code Serveur Nom de la variable de type Champ à associer au champ cloné.
<Nom du champ source> : Chaîne de caractères (sans guillemets)
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 (avec guillemets)
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.
Versions 17 et supérieures
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.
Nouveauté 17
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.
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).
WEBDEV - Code Serveur

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
Versions 19 et supérieures
WEBDEV - Code Serveur Nom de la variable de type Champ à associer au champ cloné.
Nouveauté 19
WEBDEV - Code Serveur Nom de la variable de type Champ à associer au champ cloné.
WEBDEV - 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 (sans guillemets)
Nom du champ à copier.
<Nom du champ destination> : Chaîne de caractères (avec guillemets)
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, ...),
    Versions 21 et supérieures
    WEBDEV - Code Serveur La couleur du champ cloné est la couleur actuelle du champ et non celle de la création du champ.
    Nouveauté 21
    WEBDEV - Code Serveur La couleur du champ cloné est la couleur actuelle du champ et non celle de la création du champ.
    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).
  • la hauteur et la largeur du champ.
Attention : Changement de comportement entre la version 15 et la version 16 :
En version 15, la hauteur et la largeur initiales du champ sont prises en compte pour le champ cloné.
A partir de la version 16, la hauteur et la largeur du champ affiché sont prises en compte pour le champ cloné.

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.
WEBDEV - Code Serveur

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.
Versions 21 et supérieures
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'être un champ dynamique. 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).
Nouveauté 21
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'être un champ dynamique. 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).
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'être un champ dynamique. 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 : wd240vm.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
ChampClone et Webdev
Pour éviter le message "veuillez définir le champ en dynamique" lorsque vous utilisez des indirections sur les colonnes de tables, clonez vos colonnes "modèles" dans le code d'initialisation de la page avec des noms bidons.
Pensez ensuite à les supprimer. Vous aurez ensuite tout le loisir de les cloner avec les noms des colonnes dans des chaines ou des indirections.

Cette "astuce" a été validée sur Webdev 22.
Guillaume P.
11 sep. 2018