PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 23 → copie de données d'un champ table memoire dans un champ table
copie de données d'un champ table memoire dans un champ table
Débuté par FRANCIS, 11 sep. 2014 23:54 - 9 réponses
Membre enregistré
139 messages
Posté le 11 septembre 2014 - 23:54
Bonjour,
J'ai rempli un champ table memoire avec les données d'un fichier excel, (il s'agit de données que je recupere tout les mois)
L'import dans le champ table memoire fonctionne.
Maintenant je voudrais copier ces données dans mon champ table. comment puis je faire.
// Lecture des informations
EcranVersFichier()

SI DETAIL_LOCAT_LONG_DUR..NouvelEnregistrement = Vrai ALORS
HAjoute(DETAIL_LOCAT_LONG_DUR,hFixeIdAuto)
SINON
HModifie(DETAIL_LOCAT_LONG_DUR)
FIN

Cela ne marche pas
Merci pour votre aide
Posté le 12 septembre 2014 - 07:54
Bonjour,
Je pense que tu devrais revoir les différents type de table dans Windev.
EcranVersFichier ne peut pas fonctionner avec une table mémoire, qui n'est
pas liée à un fichier.
Il faut aussi revoir la sémantique: hAjoute ne copie pas de donnée dans un
champ table, mais dans un fichier HF.

Donc si tu veux copier les lignes d'un champ table mémoire vers un fichier
HF, il faut affecter les lignes "à la main".

Frédéric.

"FRANCIS" a écrit dans le message de groupe de discussion :
2014323c4d40bfab0ce7df85880072a26f11@news.pcsoft.fr...

Bonjour,
J'ai rempli un champ table memoire avec les données d'un fichier excel, (il
s'agit de données que je recupere tout les mois)
L'import dans le champ table memoire fonctionne.
Maintenant je voudrais copier ces données dans mon champ table. comment puis
je faire.
// Lecture des informations
EcranVersFichier()

SI DETAIL_LOCAT_LONG_DUR..NouvelEnregistrement = Vrai ALORS
HAjoute(DETAIL_LOCAT_LONG_DUR,hFixeIdAuto)
SINON
HModifie(DETAIL_LOCAT_LONG_DUR)
FIN

Cela ne marche pas
Merci pour votre aide
Membre enregistré
139 messages
Posté le 12 septembre 2014 - 16:06
Bonjour
Merci pour l'info frederic, je pensais qu'il existait une fonction qui pouvais le faire.
J'ai donc fait à la main
:merci:
Membre enregistré
139 messages
Posté le 12 septembre 2014 - 17:32
Bonjour
Dernier petit problème lors de mon import j'ai bien sur un champ date, qui ne correspond pas à la date dans mon appli WINDEV
dDateMEC = xlsDonnée(XLSFileHandler,cpt,15,Vrai)
ChaîneVersDate(dDateMEC,"JJ/MM/AAAA")
Info(dDateMEC) // le retour de la date est bien 31/07/2014
DETAIL_LOCAT_LONG_DUR.'Mise En Circulation'= dDateMEC
// Lorsque je regarde dans le champ date Mise en circulation je me retrouve avec 20/07/0031


Lorsque j'affecte ma variable à mon champ du fichier HF
DETAIL_LOCAT_LONG_DUR.'Mise En Circulation'= dDateMEC


La date passe de 31/07/2014 à 20/07/0031

Auriez vous une idée du pourquoi
MERCI
Posté le 12 septembre 2014 - 18:00
Je dirai que le format de la date n'est pas bon (je dirai AA/MM/JJJJ).

Frédéric.

"FRANCIS" a écrit dans le message de groupe de discussion :
2014c092054e8f8579937bff8cfb6ea17ad8@news.pcsoft.fr...

Bonjour
Dernier petit problème lors de mon import j'ai bien sur un champ date, qui
ne correspond pas à la date dans mon appli WINDEV
dDateMEC = xlsDonnée(XLSFileHandler,cpt,15,Vrai)
ChaîneVersDate(dDateMEC,"JJ/MM/AAAA")
Info(dDateMEC) // le retour de la date est bien 31/07/2014
DETAIL_LOCAT_LONG_DUR.'Mise En Circulation'= dDateMEC
// Lorsque je regarde dans le champ date Mise en circulation je me retrouve
avec 20/07/0031


Lorsque j'affecte ma variable à mon champ du fichier HF
DETAIL_LOCAT_LONG_DUR.'Mise En Circulation'= dDateMEC


La date passe de 31/07/2014 à 20/07/0031

Auriez vous une idée du pourquoi
MERCI
Membre enregistré
139 messages
Posté le 14 septembre 2014 - 08:45
bonjour,
A priori je pense comme toi fréderic mais malgré mes tentatives je n'arrive pas à retomber sur le bon format

dans excel il est JJ/MM/AAAA
dans mon appli le champ date est AAAAMMJJ et à l'affichage il devient JJ/MM/AAAA

je tourne en rond
Posté le 14 septembre 2014 - 11:37
Bonjour,

Il y a 2 fonctions qui sont faites pour gérer ces problèmes : chaineversdate() et dateverschaine().

Quand tu lis le fichier excel, tu récupères une CHAINE, par exemple ddateMEC = "31/07/2014"
Et tu veux convertir cette chaîne en DATE :

ma_date = dateverschaine( ddateMEC, "JJ/MM/AAAA")
Posté le 15 septembre 2014 - 08:03
Bonjour,
C'est juste l'inverse ;)
Ici il faut utiliser ChaineVersDate(), pour convertir une CHAINE en DATE.

Frédéric.

"Joel" a écrit dans le message de groupe de discussion :
20148306191ce786b56e40f642b4e62af572@news.pcsoft.fr...

Bonjour,

Il y a 2 fonctions qui sont faites pour gérer ces problèmes :
chaineversdate() et dateverschaine().

Quand tu lis le fichier excel, tu récupères une CHAINE, par exemple ddateMEC
= "31/07/2014"
Et tu veux convertir cette chaîne en DATE :

ma_date = dateverschaine( ddateMEC, "JJ/MM/AAAA")
Membre enregistré
139 messages
Posté le 24 septembre 2014 - 08:53
Merci pour votre aide, finalement la solution c'est bien ce que vous m'aviez indiqué:
ma date = ....
Chose que je n'avais pas mis au début

sDateImport = xlsDonnée(XLSFileHandler,cpt,15,Vrai)
DateMEC = ChaîneVersDate(sDateImport,"JJ/MM/AAAA")
DETAIL_LOCAT_LONG_DUR.'Mise En Circulation'= DateMEC


:merci::merci:
Posté le 11 juillet 2018 - 15:54
FRANCIS a écrit :
Bonjour
Merci pour l'info frederic, je pensais qu'il existait une fonction qui pouvais le faire.
J'ai donc fait à la main
:merci:


Pour info aujourd'hui il existe une fonction TableVersExcel(table,nomfichier) qui fait la même chose que quand on demande un export vers excel depuis le menu contextuel de la table.

Je sais que le cas de ce fil est résolu depuis longtemps mais comme je suis tombé sur ce fil en recherchant cette info je me suis dit que ça pourra peut-être aider d'autres personnes...