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
  • 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 WatchCatalystUniversal 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
Android Cette fonction est désormais disponible pour les applications Android.
Linux Cette fonction est désormais disponible en Linux, pour les états et les fenêtres.
Nouveauté 16
Android Cette fonction est désormais disponible pour les applications Android.
Linux Cette fonction est désormais disponible en Linux, pour les états et les fenêtres.
Android Cette fonction est désormais disponible pour les applications Android.
Linux Cette fonction est désormais disponible en Linux, pour les états et les fenêtres.
Versions 17 et supérieures
WINDEVWindowsLinux Cette fonction est désormais disponible pour cloner les volets d'onglet.
Nouveauté 17
WINDEVWindowsLinux Cette fonction est désormais disponible pour cloner les volets d'onglet.
WINDEVWindowsLinux Cette fonction est désormais disponible pour cloner les volets d'onglet.
Versions 18 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
iPhone/iPad Cette fonction est désormais disponible dans les états des applications iPhone/iPad.
Nouveauté 18
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
iPhone/iPad Cette fonction est désormais disponible dans les états des applications iPhone/iPad.
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
iPhone/iPad Cette fonction est désormais disponible dans les états des applications iPhone/iPad.
Versions 19 et supérieures
iPhone/iPad Cette fonction est désormais disponible dans les fenêtres pour les applications iPhone/iPad.
Nouveauté 19
iPhone/iPad Cette fonction est désormais disponible dans les fenêtres pour les applications iPhone/iPad.
iPhone/iPad Cette fonction est désormais disponible dans les fenêtres pour les applications iPhone/iPad.
Versions 21 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
WEBDEV - Code Serveur Cette fonction est désormais disponible pour les champs des pages WEBDEV.
Nouveauté 21
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
WEBDEV - Code Serveur Cette fonction est désormais disponible pour les champs des pages WEBDEV.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
WEBDEV - Code Serveur Cette fonction est désormais disponible pour les champs des pages WEBDEV.
Versions 17 et supérieures
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")
Nouveauté 17
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")
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)
WINDEVEtats et RequêtesiPhone/iPadUniversal Windows 10 AppWindows MobileJavaCode Utilisateur (MCU)
// Crée un nouveau champ de saisie
ChampClone(SAI_Adresse, "Clone", 10, 10)
xChamp est un Champ
xChamp <- ChampClone(COL_Modèle, "COL_Clone" + i)
xChamp..Largeur = COL_Modèle..Largeur
xChamp..Libellé = "Matière " + i
Syntaxe
WINDEVEtats et RequêtesAndroidiPhone/iPadUniversal Windows 10 AppWindows MobileJavaCode Utilisateur (MCU)

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

<Résultat> = ChampClone(<Nom du champ source de la fenêtre> , <Nom du champ destination> [, <X> , <Y>])
<Résultat> : Variable de type Champ
Versions 19 et supérieures
WINDEV Nom de la variable de type Champ à associer au champ cloné.
Nouveauté 19
WINDEV Nom de la variable de type Champ à associer au champ cloné.
WINDEV Nom de la variable de type Champ à associer au champ cloné.
<Nom du champ source de la fenêtre> : 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).

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 (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).
WINDEVWEBDEV - Code ServeurEtats et RequêtesiPhone/iPadUniversal Windows 10 AppWindows MobileCode 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
Versions 19 et supérieures
WINDEVWEBDEV - Code Serveur Nom de la variable de type Champ à associer au champ cloné.
Nouveauté 19
WINDEVWEBDEV - Code Serveur Nom de la variable de type Champ à associer au champ cloné.
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 (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.
WINDEVWEBDEV - Code ServeurEtats et RequêtesiPhone/iPadWindows MobileJavaCode 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.
WINDEVEtats et RequêtesAndroidWindows MobileJavaCode Utilisateur (MCU)

Clonage d'un menu

Il est possible de cloner un menu grâce à la fonction MenuClone.
Versions 17 et supérieures
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é.
Nouveauté 17
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é.
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é.
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 : wd250vm.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