Table mémoire

Le
PimSaVie
Bonjour

J'ai un petit soucis avec une table mémoire

Je la remplis à partir d'un fichier excel.; Comme je ne connais pas à
l'avance le nombre de colonne ni le nom des colonnes que j'aurais,
j'ai créé une cinquantaine de colonne appelé "COL_1", "COL_2"..
invisible.. je les rend visible et modifie le titre en fonction du
fichier excel

Pour remplir ma table, j'utilise le code suivant

POUR nIndLigne = nPremièreLigne A nNbLignes
// Ajouter une ligne
TableAjoute(TABLE_Association)
nIndAssociation++

// Parcours de colonne en colonne
POUR nIndice = 1 A nNbColonnes
// Récupérer la donnée de la colonne
sDonnées = xlsDonnée(gfnIdFichier, nIndLigne,
nIndice, Faux)

// Ajouter la donnée dans la table
SI sDonnées <> "" ALORS {"Col_" + nIndice,indChamp}
[nIndAssociation]..Valeur = sDonnées
FIN
FIN

La première fois, je n'ai aucun soucis. La seconde fois, en mode
débug, je vois bien chaque données s'affichait mais la ligne
précédente et effacer (et en debug, je vois que le tableajoute()
efface la ligne précédente pour la copier sur la nouvelle))
J'ai essayé TableAjouteLigne, TableInsèreLigne, mais rien n'y fait

est-ce que vous auriez déjà rencontré ce problème?

Karine
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Yves BURLOT
Le #14546341
PimSaVie avait prétendu :
Bonjour

J'ai un petit soucis avec une table mémoire

Je la remplis à partir d'un fichier excel.; Comme je ne connais pas à
l'avance le nombre de colonne ni le nom des colonnes que j'aurais,
j'ai créé une cinquantaine de colonne appelé "COL_1", "COL_2"..
invisible.. je les rend visible et modifie le titre en fonction du
fichier excel

Pour remplir ma table, j'utilise le code suivant

POUR nIndLigne = nPremièreLigne A nNbLignes
// Ajouter une ligne
TableAjoute(TABLE_Association)
nIndAssociation++

// Parcours de colonne en colonne
POUR nIndice = 1 A nNbColonnes
// Récupérer la donnée de la colonne
sDonnées = xlsDonnée(gfnIdFichier, nIndLigne,
nIndice, Faux)

// Ajouter la donnée dans la table
SI sDonnées <> "" ALORS {"Col_" + nIndice,indChamp}
[nIndAssociation]..Valeur = sDonnées
FIN
FIN

La première fois, je n'ai aucun soucis. La seconde fois, en mode
débug, je vois bien chaque données s'affichait mais la ligne
précédente et effacer (et en debug, je vois que le tableajoute()
efface la ligne précédente pour la copier sur la nouvelle))
J'ai essayé TableAjouteLigne, TableInsèreLigne, mais rien n'y fait

est-ce que vous auriez déjà rencontré ce problème?

Karine



Pourquoi ne pas utiliser ChampsClone() :
- un tableau de 1 colonne
- (a) tu la clone en fonction du nombre de colone de Excel-1
- tu rempli ta table

Avant de remplir à nouveau tu supprime les champs clonés :
- ChampsSupprime()
- et tu recommence en (a)

bon dev

--
Jean-Yves BURLOT
suivre ce lien pour répondre :
http://cerbermail.com/?zbQ7wrKUbu
;-)
--
Albert
Le #14546331
Bonjour,

Une table contenant 1 colonne < a cloner >

ID = xlsOuvre("C:MonRépertoireFichier.XLS")

// [< Construction dynamique de la table >]

nNbreCol = xlsNbColonne(ID)

POUR i = 1 A nNbreCol

// [< Création colonne + titre >]
ChampClone(TABLE_Nom.ACLoner,"COL_" + i)
{"TABLE_Nom.COL_"+i,indChamp}..Libellé = xlsTitreColonne(Id, i)
{"TABLE_Nom.COL_"+i,indChamp}..Largeur = 70
{"TABLE_Nom.COL_"+i,indChamp}..Visible = Vrai

FIN

// [< Récupérer les données du fichier Xls et les charger dans la
table

nNbreLgn = xlsNbLigne(ID)

POUR nLigne = 1 A nNbreLgn

POUR nCol = 1 a xlsNbColonne(ID)

{"TABLE_Nom.COL_" + nCol, indChamp} = xlsDonnée(ID, nLigne,
nCol)

FIN

FIN

Espérant vous avoir aidé

Cordialement

Albert
Heckel Olivier
Le #14546321
N'y a-t-il pas dans la suite du code la fonction TABLETRIE qui est utilisée
? Si oui il faut la désactiver avant de compléter la table.


"PimSaVie"
Bonjour

J'ai un petit soucis avec une table mémoire

Je la remplis à partir d'un fichier excel.; Comme je ne connais pas à
l'avance le nombre de colonne ni le nom des colonnes que j'aurais,
j'ai créé une cinquantaine de colonne appelé "COL_1", "COL_2"..
invisible.. je les rend visible et modifie le titre en fonction du
fichier excel

Pour remplir ma table, j'utilise le code suivant

POUR nIndLigne = nPremièreLigne A nNbLignes
// Ajouter une ligne
TableAjoute(TABLE_Association)
nIndAssociation++

// Parcours de colonne en colonne
POUR nIndice = 1 A nNbColonnes
// Récupérer la donnée de la colonne
sDonnées = xlsDonnée(gfnIdFichier, nIndLigne,
nIndice, Faux)

// Ajouter la donnée dans la table
SI sDonnées <> "" ALORS {"Col_" + nIndice,indChamp}
[nIndAssociation]..Valeur = sDonnées
FIN
FIN

La première fois, je n'ai aucun soucis. La seconde fois, en mode
débug, je vois bien chaque données s'affichait mais la ligne
précédente et effacer (et en debug, je vois que le tableajoute()
efface la ligne précédente pour la copier sur la nouvelle))
J'ai essayé TableAjouteLigne, TableInsèreLigne, mais rien n'y fait

est-ce que vous auriez déjà rencontré ce problème?

Karine
PimSaVie
Le #14542421
On 9 fév, 08:57, "Heckel Olivier"
N'y a-t-il pas dans la suite du code la fonction TABLETRIE qui est utilis ée
? Si oui il faut la désactiver avant de compléter la table.



Effectivement il y avais un TableTrie. Merci ça marche super bien
maintenant :o)

Et merci Albert pour l'astuce du champ Clone. Je n'ai pas le courage
de recommencer mon code, mais j'utilise souvent le principe et la
prochaine fois j'utiliserais votre méthode :o)
Publicité
Poster une réponse
Anonyme