DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Comment le faire / Programmation
  • Présentation
  • Méthode 1 : Clonage de colonnes
  • Méthode 2 : Création des colonnes
  • Manipulation de la nouvelle colonne
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
Comment cloner et manipuler des colonnes dans un champ Table ?
Présentation
Dans certains cas, il est nécessaire de remplir un champ Table avec un nombre de colonnes inconnu à l'avance (lors de la création du champ). Il existe 2 méthodes pour construire dynamiquement des colonnes dans un champ Table :
Méthode 1 : Clonage de colonnes
La fonction ChampClone permet de cloner (dupliquer) un champ existant pour en créer une copie. Cette fonction est utilisable également sur une colonne d'un champ Table. La nouvelle colonne est ajoutée automatiquement à la fin des colonnes existantes.
Pour créer une nouvelle colonne :
  1. Créez un champ Table.
  2. Définissez dans le champ Table la colonne qui servira de "modèle pour le clonage".
  3. Videz le contenu du champ Table (fonction TableSupprimeTout).
  4. Supprimez les précédentes colonnes clonées (fonction ChampSupprime).
  5. Créez les nouvelles colonnes (fonction ChampClone).
  6. Remplissez le champ Table avec les données.
Exemple de code :
NbColonnesFixe est un entier
NbNouvellesColonnes est un entier

NomNouvelleColonne est une chaîne


// On vide la table
TableSupprimeTout(TABLE_statAnnuelle)


// On supprime les anciennes colonnes clonées
NbColonnesFixe = 3 // par exemple, on a 2 colonnes fixes + la colonne Ã  cloner

POUR nInd = TableOccurrence(TABLE_statAnnuelle,toColonne) Ã€ NbColonnesFixe PAS -1
ChampSupprime(TableEnumèreColonne(TABLE_statAnnuelle, nInd))
FIN

// On clone les nouvelles colonnes
NbNouvellesColonnes = 5 // par exemple, on veut 5 nouvelles colonnes
POUR nInd = 1 Ã€ NbNouvellesColonnes
// On construit le nom de la nouvelle colonne
NomNouvelleColonne = "COL_" + nInd
// On crée la nouvelle colonne par clonage
ChampClone(COL_Modèle, NomNouvelleColonne)

// On modifie le libellé d'entête de la nouvelle colonne
{NomNouvelleColonne, indChamp}..Libellé = "Colonne " + nInd 

FIN

// On remplit le champ Table...

// Mettre ici votre code de remplissage de la table
Attention :
  • Il faut cloner les colonnes avant d'effectuer le remplissage du champ Table.
  • Il ne peut pas y avoir 2 colonnes de même nom.
Méthode 2 : Création des colonnes
La fonction ChampCrée permet de créer un champ sans utiliser un modèle comme la méthode par clonage. Cette fonction est utilisable également sur une colonne d'un champ Table. La nouvelle colonne est ajoutée automatiquement à la fin des colonnes existantes.
Pour créer une nouvelle colonne :
  1. Créez un champ Table.
  2. Videz le contenu du champ Table (fonction TableSupprimeTout).
  3. Supprimez les précédentes colonnes créées (fonction ChampSupprime).
  4. Créez les nouvelles colonnes (fonction ChampCrée).
  5. Remplissez le champ Table avec les données.
Exemple de code :
NouvelleColonne est un Champ

NbColonnesFixe est un entier
NbNouvellesColonnes est un entier

NomNouvelleColonne est une chaîne


// On vide la table
TableSupprimeTout(TABLE_statAnnuelle)


// On supprime les anciennes colonnes créées
NbColonnesFixe = 3 // Par exemple, on a 2 colonnes fixes + la colonne Ã  créer


POUR nInd = TableOccurrence(TABLE_statAnnuelle, toColonne) Ã€ NbColonnesFixe PAS -1
ChampSupprime(TableEnumèreColonne(TABLE_statAnnuelle, nInd))
FIN

// On crée les nouvelles colonnes
NbNouvellesColonnes = 5 // par exemple, on veut 5 nouvelles colonnes
POUR nInd = 1 Ã€ NbNouvellesColonnes
// On construit le nom de la nouvelle colonne
NomNouvelleColonne = TABLE_statAnnuelle.Nom + ".COL_" + nInd
// On crée la nouvelle colonne par création
NouvelleColonne <- ChampCrée(NomNouvelleColonne, typColonne)

// On modifie le libellé d'entête de la nouvelle colonne
NouvelleColonne.Libellé = "Colonne " + nInd 
FIN

// On remplit le champ Table...
// Mettre ici votre code de remplissage de la table
Attention :
  • Il faut créer les colonnes avant d'effectuer le remplissage du champ Table.
  • Il ne peut pas y avoir 2 colonnes de même nom.
Manipulation de la nouvelle colonne
Pour manipuler la colonne créée (par clonage ou création), vous disposez de deux méthodes :
  • les opérateurs d'indirection { }. Pour plus de détails, consultez Opérateurs d'indirection.
  • le nom de la nouvelle colonne, méthode valable uniquement si la colonne a été créée par la fonction ChampCrée.
Version minimum requise
  • Version 22
Documentation également disponible pour…
Commentaires
écriture dans la colonne
Se serait intéressant de savoir comment on écrit ensuite dans la table.

Comment nomme t-on cette colonne dans le code ?

TABLE_TEST[i].COL_ ???? = "bonjour"
obtuli
23 oct. 2019

Dernière modification : 25/05/2022

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