PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → récupération du nom du fichier sélectionné dans une autre fenêtre
récupération du nom du fichier sélectionné dans une autre fenêtre
Débuté par philou, 09 mar. 2006 18:16 - 10 réponses
Posté le 09 mars 2006 - 18:16
dans une fenêtre prédéfinie recherche de fichier , je sélectionne un fichier , je récupère son nom via le champ NOM de la table de la fenêtre initiale , ça roule ,

mais comment le réutiliser dans une fenêtre suivante pour lire les données sachant que c'est un fichier externe ,

au passage merci à PCsoft pour la déclaration externe qui fonctionne sous cette forme , ( impossible d'importer un fichier HF sans posséder l'analyse complète )

EXTERNE Fichier

HDéclare("Fichier","C:\temp\analyse.wdd","","Fichier")
HChangeRep(Fichier,"C:\temp")
FichierVersTableMémoire(TABLE_Table1,Fichier)

j'ai essayé les conseils précédents sur procédure mais syntaxe impossible avec une déclaration externe ???

merci

A+

philou
Posté le 09 mars 2006 - 18:49
bonsoir,
Pour utiliser les donnees d'un fichier externe, tu dois utiliser les operateurs d'indirection :
exemple :

Nomfichier est chaine

NomFichier = "Monfic"
// Pour recuperer dans MaVariable le contenu de la zone ZoneFic du fichier Monfic
MaVariable = {NomFichier + ".ZoneFic"}
ou
MaVariable = {"Monfic.Zonefic"}

Jespere avoir repondu a ta question. Bon dev.
Posté le 10 mars 2006 - 08:45
merci ,

dans le code du bouton OK de la fenêtre initiale j'ai ceci :

i,nRang sont des entiers
BOUCLE
i++
nRang = TableSelect("TABLE1",i)
SI nRang = -1 ALORS SORTIR
SI PAS gsResultat~="" ALORS gsResultat+=RC
gsResultat+=REPERTOIRE[nRang]+NOM[nRang]
FIN
Info("Fichiers sélectionnés :",NOM) \\ affichage du nom du fichier correct ( = nom.fic)
fich est une chaîne
{"fich"}=NOM
Info("Fichier sélectionné est : ",{"fich"}) \\ affichage du nom du fichier correct ( =nom.fic)
Ouvre(FEN_Fenêtre1)


dans la fenêtre d'affichage de la table du fichier choisi , ceci :

EXTERNE {"fich"}

HDéclare({"fich"},"C:\rep\analyse.wdd","",{"fich"})
HChangeRep({"fich"},"C:\rep")
FichierVersTableMémoire(TABLE_Table1,{"fich"})
HErreurInfo()


message d'erreur :

Erreur dans le traitement Initialisation de TABLE_Table1.
Ce code contient encore des erreurs de compilation et ne peut pas être exécuté.


Informations techniques

Projet : import

Dump de l'erreur du module <WD100VM.DLL> <10.00Nu>.

- Appel WL :
Traitement de <FEN_Fenêtre1.TABLE_Table1>, ligne <65535>, thread <0>

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 1001

- Code erreur WD55 : 0

- Pas de code d'erreur système

- Pas de message d'erreur système

- Que s'est-il passé ?
Ce code contient encore des erreurs de compilation et ne peut pas être exécuté.

- Pas d'info de debug

- Infos attachées :
EIT_DATEHEURE : 09/03/2006 21:31:31
EIT_PILEWL :
Initialisation de TABLE_Table1 (FEN_Fenêtre1.TABLE_Table1), ligne 65535
Clic sur VALIDER (Recherche de fichiers.VALIDER), ligne 14

- Identifiant dans le .err : 1001

une idée ?

merci

philou
Posté le 10 mars 2006 - 11:30
Je viens de faire le test suivant qui marche parfaitement :

HDéclare("Client","C:\Mes Projets\Hollicli\Hollicli.wdd")
HSubstRep("?","C:\Mes Projets\Hollicli\Exe\DataMax")
FichierVersTableMémoire(table,"Client")

Il n'y a pas besoin de déclaration Extern et le nom du fihier doit toujours
être entre guillemets.

--
Cordialement.

Patrick Bouquet
Membre WINDASSO - Association des utilisateurs WxxDEV(c)
http://www.windasso.org


"philou" <philippe.bonarelli@wanadoo.fr> a écrit dans le message de news:
4410431d@news.pcsoft.fr...

dans une fenêtre prédéfinie recherche de fichier , je sélectionne un
fichier , je récupère son nom via le champ NOM de la table de la fenêtre
initiale , ça roule ,

mais comment le réutiliser dans une fenêtre suivante pour lire les données
sachant que c'est un fichier externe ,

au passage merci à PCsoft pour la déclaration externe qui fonctionne sous
cette forme , ( impossible d'importer un fichier HF sans posséder
l'analyse complète )

EXTERNE Fichier

HDéclare("Fichier","C:\temp\analyse.wdd","","Fichier")
HChangeRep(Fichier,"C:\temp")
FichierVersTableMémoire(TABLE_Table1,Fichier)

j'ai essayé les conseils précédents sur procédure mais syntaxe impossible
avec une déclaration externe ???

merci

A+

philou


Posté le 10 mars 2006 - 15:39
super le code fonctionne sans déclaration externe ,

mais comment récupérer ce foutu nom de fichier d'une fénêtre à l'autre ?

fichier est chaîne
fichier={"fich"} // fich vient de la précédente fenêtre
HDéclare("fichier","C:\rep\analyse.wdd")
HSubstRep("?","C:\rep")
FichierVersTableMémoire(TABLE_Table2,"fichier")

merci

A+

philou
Posté le 10 mars 2006 - 16:39
ah là j'ai trouvé qqchose qui gaze , c'est probablement pas trés "propre" ni trés élagant mais ça fonctionne ,

dans le bouton OK de la fenêtre de recherche du fichier

// Récupère les fichiers sélectionnés dans la table
i,nRang sont des entiers

BOUCLE
i++
nRang = TableSelect("TABLE1",i)
SI nRang = -1 ALORS SORTIR
SI PAS gsResultat~="" ALORS gsResultat+=RC
gsResultat+=REPERTOIRE[nRang]+NOM[nRang]
FIN
Info("Fichiers sélectionnés :",NOM)
//gsFich est déclarée en globale dans le projet
gsFich=NOM
Info("Fichier sélectionné est : ",gsFich)
Ouvre(FEN_Fenêtre2)

dans la fenêtre d'affichage du fichier

Fichier est chaîne
Fichier= ExtraitChaîne(gsFich, 1, ".") // on enlève le .FIC
Info("le nom du fichier est:"+Fichier)
HDéclare(Fichier,"C:\rep\analyse.wdd")
HSubstRep("?","C:\rep")
FichierVersTableMémoire(TABLE_Table2,Fichier)

si ça peut servir à qqun ,

A+

philou
Posté le 10 mars 2006 - 18:04
Si la variable globale gsFich contient le nom du fichier il sufit de faire
HDéclare(gsFich,"C:\Mes Projets\Hollicli\Hollicli.wdd")
HSubstRep("?","C:\Mes Projets\Hollicli\Exe\DataMax")
FichierVersTableMémoire(table,gsFich)

--
Cordialement.


Patrick Bouquet
Membre WINDASSO - Association des utilisateurs WxxDEV(c)
http://www.windasso.org


"philou" <philippe.bonarelli@wanadoo.fr> a écrit dans le message de news:
44118c83$1@news.pcsoft.fr...

ah là j'ai trouvé qqchose qui gaze , c'est probablement pas trés "propre"
ni trés élagant mais ça fonctionne ,

dans le bouton OK de la fenêtre de recherche du fichier

// Récupère les fichiers sélectionnés dans la table
i,nRang sont des entiers

BOUCLE
i++
nRang = TableSelect("TABLE1",i)
SI nRang = -1 ALORS SORTIR
SI PAS gsResultat~="" ALORS gsResultat+=RC
gsResultat+=REPERTOIRE[nRang]+NOM[nRang]
FIN
Info("Fichiers sélectionnés :",NOM)
//gsFich est déclarée en globale dans le projet
gsFich=NOM
Info("Fichier sélectionné est : ",gsFich)
Ouvre(FEN_Fenêtre2)

dans la fenêtre d'affichage du fichier

Fichier est chaîne
Fichier= ExtraitChaîne(gsFich, 1, ".") // on enlève le .FIC
Info("le nom du fichier est:"+Fichier)
HDéclare(Fichier,"C:\rep\analyse.wdd")
HSubstRep("?","C:\rep")
FichierVersTableMémoire(TABLE_Table2,Fichier)

si ça peut servir à qqun ,

A+

philou





Posté le 10 mars 2006 - 18:04
Pourquoi tu ne passes pas tout simplement le nom du fichier en paramètre à ta fenêtre ?
Ouvre(FEN_Fenêtre2,gsFich)

Frédéric.
Posté le 10 mars 2006 - 21:11
biazrrement avec l'extension .FIC , ça le fait pas ,

d'où ma sélection du nom de fichier sans l'extension ,

en tout cas merci pour l'aide !!!!


A+

philou
Posté le 10 mars 2006 - 21:12
c'est ce que j'ai fait en seconde option sur les conseils donnés précédemment dans un autre post ,

viré gsFich des variables globales du projet

simplement mis:

ouvre ( fen , NOM) //NOM est le nom du fichier sélectionné , fen la fénêtre d'affichage du fichier dans une table mémoire ,

dans initialisation de fen , globale,

procedure tartenpion(gpNOM)

et le reste du code dans la table en utilisant gpNOM moins .FIC toujours ,

et ça le fait aussi ,

merci à tous ,

A+

philou
Posté le 11 mars 2006 - 17:21
Non, ce n'est pas bizarre.
Le fonctions WinDev utilisent le nom logique du fichier.

--
Cordialement.

Patrick Bouquet
Membre WINDASSO - Association des utilisateurs WxxDEV(c)
http://www.windasso.org


"philou" <philippe.bonarelli@wanadoo.fr> a écrit dans le message de news:
4411bb19$1@news.pcsoft.fr...
biazrrement avec l'extension .FIC , ça le fait pas ,

d'où ma sélection du nom de fichier sans l'extension ,

en tout cas merci pour l'aide !!!!


A+

philou