PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → [WINDEV25 ]ConstruitTableFichier et noms des colonnes
[WINDEV25 ]ConstruitTableFichier et noms des colonnes
Iniciado por gc, 24,jun. 2020 09:29 - 5 respuestas
Publicado el 24,junio 2020 - 09:29
Bonjour,

J'ai une difficulté :
Je fais des exports pour le web en csv utf8 depuis un champ table, de manière dynamique avec ConstruitTableFichier.

Problème : les identifiants sont en texte avec des séparateurs de milliers, j'essaie de les passer en numérique (avec typSaisieNum, vu sur un autre forum.

Mais je n'arrive pas à manipuler la colonne. J'ai récupéré son nom avec TableEnumèreColonne (ça me renvoie _COL1.
Mais quand j'essaie de manipuler le type de cette colonne, il ne la trouve pas.

Je suis en quête de la bonne syntaxe.

voici mon code avec mes tests :

//phase 2 -> Exports ELPRCOLL
HRafraîchitVue(CnxHFCS,VUE_ELPRCOLL) //CnxEmkHfsW
ConstruitTableFichier(TABLE_test,VUE_ELPRCOLL,taAvecIdAuto + taRemplirTable)
//TABLE_Test.COL_SansNom1..Nom
//TABLE_test.ID_ELPRCOLL.TypeSaisie = typSaisieNum
TABLE_test..Visible = Vrai
TableAffiche(TABLE_test,taInit)
Info(TableEnumèreColonne(TABLE_test,1))
TABLE_test.._COL1..TypeSaisie = typSaisieNum
sElprcoll est une chaîne
sElprcoll = TableVersTexte(TABLE_test,taSansTitre,";")
fSauveTexte("C:\TESTS\ExportElprcoll.csv", ChaîneVersUTF8(sElprcoll))


Merci pour votre aide précieuse :)

G.
Miembro registrado
42 mensajes
Publicado el 24,junio 2020 - 12:09
Bonjour il faut passer par des indirections :
{Table_Test+"._Col1",indchamp}..typesaisie=typsaisienum
Publicado el 24,junio 2020 - 12:16
Re,

Merci,

Pour le moment malheureusement ça plante... Toujours un souci pour reconnaitre le nom du champ. Je vais creuser l'idée des indirections...

HRafraîchitVue(CnxHFCS,VUE_ELPRCOLL) //CnxEmkHfsW
ConstruitTableFichier(TABLE_test,VUE_ELPRCOLL,taAvecIdAuto + taRemplirTable)
//TABLE_Test.COL_SansNom1..Nom
//TABLE_test.ID_ELPRCOLL.TypeSaisie = typSaisieNum
TABLE_test..Visible = Vrai
TableAffiche(TABLE_test,taInit)
Info(TableEnumèreColonne(TABLE_test,1))
//TABLE_test.._COL1..TypeSaisie = typSaisieNum
{TABLE_test+"._COL1",indChamp}..typesaisie=typSaisieNum
sElprcoll est une chaîne
sElprcoll = TableVersTexte(TABLE_test,taSansTitre,";")
fSauveTexte("C:\TESTS\ExportElprcoll.csv", ChaîneVersUTF8(sElprcoll))


L'erreur :

L'élément '-1._COL1' est inconnu.

Pile des appels :
Procédure locale lp_ExportCsv (FEN_Import_Export_Bulletins.PROCEDURE.lp_ExportCsv), ligne 40
Clic sur BTN_Exporter (FEN_Import_Export_Bulletins.BTN_Exporter), ligne 1

Date : 24/06/2020 12:14:19
Projet : EMK_2

Informations supplémentaires :
Code erreur : 1059
Module : 'wd250vm.dll (01F250089f - 25.0.480.3)
EIT_TYPE_WDFILE : <2>
EIT_IDCODE : <458752>
Miembro registrado
42 mensajes
Publicado el 25,junio 2020 - 12:14
faire le test en incluant le nom de la table dans les ":
{"TABLE_test._COL1",indChamp}..typesaisie=typSaisieNum
Publicado el 25,junio 2020 - 13:34
Hélas, pas encore bon... J'ai fait quelques tests avec différentes syntaxes (., _ , modif du nom de la colonne - si j'affiche la table l'entête correspond au nom de la rubrique, mais pas le nom visiblement) mais rien n'y fait. On va trouver, là j'ai une autre priorité, un datamatrix à finaliser :D

NOTE : Je n'ai jamais eu ce problème en windev 23. Le csv sortait bien avec simplement :

HRafraîchitVue(CnxHFCS,VUE_ELPRCOLL) //CnxEmkHfsW
ConstruitTableFichier(TABLE_test,VUE_ELPRCOLL,taAvecIdAuto + taRemplirTable)
sElprcoll est une chaîne
sElprcoll = TableVersTexte(TABLE_test,taSansTitre,";")
fSauveTexte("C:\TESTS\ExportElprcoll.csv", ChaîneVersUTF8(sElprcoll))


C'est depuis que je suis en 25 que ça déconne :(
Publicado el 02,julio 2020 - 15:09
J'ai fini par faire une requête au STG qui m'a apporté la solution (provisoire car le fait que ça fonctionnait dans les versions précédentes ne doit pas être tout à fait normal, si j'ai bien compris les devs de pcsoft vont creuser^^)

(oui j'ai changé la source des données puisque j'ai envoyé un fichier de test en lieu et place de la vue initiale au STG)

//phase 2 -> Exports ELPRCOLL
ConstruitTableFichier(TABLE_test,TBL_ELPRCOLL,taAvecIdAuto +taRemplirTable)
sNomCol est une chaîne = TableEnumèreColonne ( TABLE_test , 1 )
{ sNomCol , indChamp }..MasqueSaisie = "99999"
sElprcoll est une chaîne
sElprcoll = TableVersTexte(TABLE_test,taSansTitre,";")
fSauveTexte("C:\TESTS\ExportElprcollTest.csv", ChaîneVersUTF8(sElprcoll))