Créer des colonnes dynamiquement dans une table ???
Anonyme
bonsoir,

J'ai une table mémoire. Comment faire pour que les colonnes se créent en fonction de la lecture d'un fichier. Ex :

Type Actif
En cours Oui
Maison Oui
Collectif Non
... ...

Dans mon ex, je veux uniquement les colonnes Encours et maison.
Tout ca geré par programmation.

autre question sur les tables :
comment faire, comme dans Excel pour faire 2 cellules en 1 et afficher le texte au milieu : Exemple

Montant
______________________________ Préviso.i Réél i
Charpente i i i
G VRD i i i
R Peinture i i i
O Espace vert i i i
U ....... i
P i
E i
1 i
____________________________ i
G Plomberie i
R Menuiserie i
O ...... i
U ....... i
P i
E i
2
____________________________

merci

Contribution le : 27/03/2006 23:55
Créer un fichier PDF de la contribution Imprimer


Re: Créer des colonnes dynamiquement dans une table ???
Stagiaire WDF
Inscrit:
13/04/2005 13:54
Post(s): 32
Bonjour,

Pour gérer dynamiquement les colonnes d'une table, vous pouvez utiliser l' instruction ChampClone. Attention la mise en forme doit être faite avant tout chargement de la table.
Personnellement pour ce type de traitement je crée trois colonnes au départ (Numérique, Texte, Date) que je clone en fonction des besoins.
Après avoir cloné les colonnes vous pouvez modifier leurs attributs.

// Suppression des éléments de la table
// ================================
TableSupprimeTout(Table1)
// Suppression des colonnes variables
// ================================
POUR L_j=2 A 20
	L_Nomzone="T_Mnt"+NumériqueVersChaîne(L_j,"02d")
	SI ChampExiste(L_Nomzone) ALORS
		ChampSupprime(L_Nomzone)
	FIN
FIN
// Gestion des colonnes de la table
// ================================
POUR L_j=1 A L_TestMax
	L_Nomzone="T_Mnt"+NumériqueVersChaîne(L_j,"02d")
	SI PAS ChampExiste(L_Nomzone) ALORS
		ChampClone(T_Mnt01,L_Nomzone)
	FIN
	{L_Nomzone}..Libellé=T_ZoneAff[L_j]
FIN

En espérant avoir répondu à votre question.

Contribution le : 28/03/2006 08:18
Créer un fichier PDF de la contribution Imprimer


Re: Créer des colonnes dynamiquement dans une table ???
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Pour la création automatique de colonne dans une table mémoire dont les données peuvent provenir indépendament de différentes tables vous pouvez utiliser la fonctio ConstruitTableFichier()

Cette fonction permet de créer des colonnes avec des libellés en clair.
Exemple:
Rs est une source de données
Sql est une chaine

Sql = "SELECT Type AS Type, EnCours AS [En Cours], Maison AS Maison, Collectif AS Collectif FROM Fichier"

Si Pas HExecuteRequeteSQL(Rs,HRequeteDefaut,Sql) Alors
 Erreur(HErreurInfo())
 Retour
Fin 

TableSupprimeTout(<MaTable>)
ConstruitTableFichier(<MaTable>,Rs,taRemplirTable)


Note :
Les colonnes ainsi ajoutées se nomment :
"_COL1","_COL2","_COL3", etc...

De plus la manipulation de ces colonnes par programmation ne peuvent se faire que via les indirections:

Exemple :
{"TABLE1._COL1"}..Largeur = 100

Contribution le : 28/03/2006 12:17
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Créer des colonnes dynamiquement dans une table ???
Utilisateur WDF
Inscrit:
19/05/2004 12:10
De LYON
Post(s): 59
Bonjour,

Petite précision pour info :

J'ai expérimenté la fonction "ConstruitTableFichier" il y a peu de temps et j'ai eu l'agréable surprise de découvrir que les "noms" des colonnes sont exactement ceux qui ont été définis par les " as " dans les noms de rubriques de la requête.

Et ces colonnes peuvent donc se manipuler par leur nom.

Ceci en version 9.34j.

WinDev réserve parfois de très bonnes surprises.

Contribution le : 28/03/2006 12:36
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2