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
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
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 (duplication d'une colonne existante) : utilisation de la fonction ChampClone.
  • WINDEViPhone/iPad Méthode 2 : création (la nouvelle colonne est créée directement) : utilisation de la fonction ChampCrée.
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
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 02/12/2024

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