PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Remplissage de table en colonne et non en ligne d'un fichier HF
Remplissage de table en colonne et non en ligne d'un fichier HF
Débuté par Fabrice Guillaume, 10 mar. 2006 10:28 - 11 réponses
Posté le 10 mars 2006 - 10:28
Bonjour,

je veux remplir une table a partir d'un fichier HF mais je souhaite que chaque enregistrement de mon fichier HF se fasse en colonne et non en ligne,

est ce possible ?

Merci par avance

Fabrice
Posté le 10 mars 2006 - 10:53
oui dans une table mémoire

JCP


"Fabrice Guillaume" <guillaume.fabrice@free.fr> a écrit dans le message de
news: 441135b6$1@news.pcsoft.fr...


Bonjour,

je veux remplir une table a partir d'un fichier HF mais je souhaite que
chaque enregistrement de mon fichier HF se fasse en colonne et non en
ligne,

est ce possible ?

Merci par avance

Fabrice
Posté le 10 mars 2006 - 11:02
Dans une table mémoire:
Colonne=1
HlitPremier(NomFic,CleParc)
TantQue pas HEndehors(NomFic)
--Ligne=1
--NomTable[Ligne][Colonne]=NomFic.Rub1;Ligne++
--NomTable[Ligne][Colonne]=NomFic.Rub2;Ligne++
--NomTable[Ligne][Colonne]=NomFic.Rub3;Ligne++
--...
--HlitSuivant(NomFic,CleParc)
--Colonne++
Fin
Posté le 10 mars 2006 - 11:03
Bonjour,
C'est tout à fait possible:
Dans la table, tu ajoutesune colonne cachée. Ensuite tu boucles sur ton fichier, et pour chaque enregistrement:
tu clones la colonne cachée
Tu modifiese titre de la nouvelle colonne ( eventuellement )
Tu lui affectes la valeur à afficher
Tu la rends visible

Frédéric.
Posté le 10 mars 2006 - 11:30
Bonjour,

Le nombre de colonnes n'est pas connu au départ donc il faut que la table soit créer à chaque fois. Pour cela tu crées une table memoire avec 1 colonne et dans ton pg :

Hlitpremier(fichier,cle)
tantque pas hendehors()
champclone(table,colonne1,Nomcolonne)
fin
Et la tu auras autant de colonnes que d'enregistrements
ATTENTION : pour utiliser les colonnes de ta table il faut utiliser l'operateur d'indirection {} :
{"Table.Nomcolonne"}
Posté le 10 mars 2006 - 11:38
Je te remercie pour ton bout de code, toutefois j'ai une erreur d'indice...

cela te dit quelque chose, le message est le suivant :

la liste est vide
Aucun indice n'est valide pour le champ table
(indice spécifié : 1)


pourtant quand je fais :

info(fic.rub1,ligne,colonne)

j'obtiens bien ma rubrique, le numéro de la ligne et le numéro de la colonne

????

Merci encore

Fabrice
Posté le 10 mars 2006 - 11:54
Excuse-moi, j'avais considéré que tu avais prévu la table avec un nombre de colonnes préalablement connu...
Commence donc par le code d'Erick et termine avec le mien...
Peux-tu préciser pourquoi tu souhaites cette présentation ?
Posté le 10 mars 2006 - 15:42
j'ai un fichier HF ou je stocke une valeur pour 28 jours, soit 28 rubriques identiques ce qui correspond à un cycle

Quand je remplis une table par HF, il me crée 28 colonnes et je souhaite faire un graphe avec ce cycle de 28 colonnes,

or faire une série avec une colonne pas de souci mais avec un ligne je sèche à mort !!!

Donc je veux remplir ma table par programmation où chaque colonne correspond à un cycle comprenant 28 lignes...

Voili voilou....... une autre idée car j'ai toujours des erreurs

Merci infiniement

Fabrice
Posté le 10 mars 2006 - 16:22
Quelles erreurs?
Une idée qui me vient:
Table1: Table Fichier liée (elle va se compléter automatiquement. Elle peut être cachée ou superposée par Table2) Elle contiendra HNbEnr(...) lignes et 28 colonnes. (HNbEnr = Nbre d'enreg. du fichier)
Table2: Table Mémoire qui doit contenir HNbEnr(...) colonnes (Colonnes à ajouter avec ChampClone) et 28 lignes (A ajouter avec TableAjoute)
Ensuite, recopier Table1 dans Table2 en inversant ligne<--->colonne
Pour Ligne=1 à HNbEnr
--Pour Colonne=1 à 28
----Table2[Colonne][Ligne]=Table1[Ligne][Colonne]
--Fin
Fin
Posté le 10 mars 2006 - 18:04
SUPER !!!

Cela marche comme je veux, tu as réussi à me faire écrire ce qui était dans le brouillard au niveau de mon cerveau !!!!

Tu es grand !!

Bonne soirée et bon week end

Fabrice
Posté le 10 mars 2006 - 18:36
Fabrice Guillaume a pensé très fort :


SUPER !!!

Cela marche comme je veux, tu as réussi à me faire écrire ce qui était dans
le brouillard au niveau de mon cerveau !!!!

Tu es grand !!

Bonne soirée et bon week end

Fabrice


Ce n'est pas trop lent au niveau de l'affichage ? Je trouvais que le
champclone ralentissait l'affichage....

A+

--
Dr J-M des Grottes
Gestionnaire du Registre des Néphrologues Francophones de Belgique
Posté le 11 mars 2006 - 10:05
Fabrice