PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Enregistrement fichier PDF,Word etExcel sous Hyperfile
Enregistrement fichier PDF,Word etExcel sous Hyperfile
Iniciado por terry2002fr, 24,jul. 2014 00:43 - 13 respuestas
Publicado el 24,julio 2014 - 00:43
Bonjour Monsieur,
Comment faire pour enregistrement et stocker des fichiers PDF,Word et Excel dans une base de données Hyperfile ? afin de les reouvrir plus tard.

Merci
Miembro registrado
953 mensajes
Publicado el 24,julio 2014 - 09:33
Bonjour,

il vous faudra passer par des rubriques mémo pour stocker vos fichier.

puis utiliser les commandes :
http://doc.pcsoft.fr/fr-FR/?3044173&name=hattachememo_fonction
et
http://doc.pcsoft.fr/fr-FR/?3044072&name=hextraitmemo_fonction

bon dèv
Publicado el 24,julio 2014 - 14:25
Bonjour;

Je cherche à faire la même chose, c'est à dire extraire un document de type pdf, xls, doc... situé sur C:\*** (par exemple) vers un champs son,image,binaire d'un ficher HFSQL de ma base.
J'utilise donc HAttacheMémo(Nom_Du_Fichier_HFSQL, Champs_Du_Fichier_HFSQL, Nom_Du_Doc_A_extraire)

ça fonctionne bien mais le problème c'est que ce n'est pas vraiment le document qui est copier dans la base mais son chemin d'accès.
Si je supprime mon document, le lien avec le fichier HFSQL ne se fait plus.

Je cherche comment poser physiquement le document dans mon fichier HFSQL.

Une idée ?

Merci de votre aide.
Publicado el 24,julio 2014 - 14:53
Bonjour Mathieu

Montres nous ton code (et pas seulement UNE ligne ou TU crois qu'il y a
le problème)

Une chose est sure hattacheMemo mets bien le FICHIER dans la rubrique,
et ABSOLUMENT PAS son chemin

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXShowroom.com est disponible : Montrez vos projets !
Plus d'information sur http://fabriceharari.com


On 7/24/2014 6:25 AM, Mathieu wrote:
Bonjour;

Je cherche à faire la même chose, c'est à dire extraire un document de
type pdf, xls, doc... situé sur C:\*** (par exemple) vers un champs
son,image,binaire d'un ficher HFSQL de ma base.
J'utilise donc HAttacheMémo(Nom_Du_Fichier_HFSQL,
Champs_Du_Fichier_HFSQL, Nom_Du_Doc_A_extraire)

ça fonctionne bien mais le problème c'est que ce n'est pas vraiment le
document qui est copier dans la base mais son chemin d'accès.
Si je supprime mon document, le lien avec le fichier HFSQL ne se fait plus.

Je cherche comment poser physiquement le document dans mon fichier HFSQL.

Une idée ?

Merci de votre aide.
Publicado el 24,julio 2014 - 15:14
Merci de votre attention...

Mon code est simple :

j'ai un sélecteur de fichier qui incrémente une variable FicATransfere
Donc :
FicATransfere = "C:\mes document\Mon_Fichier" par exemple

j'ai un bouton valider où j'ai simplement :

HAttacheMémo(Lst_fichiers,document,FicATransfere)

Je veux donc ajouter dans le champs document de mon fichier HFSQL Lst_fichiers le document FicATransfere.

ça marche bien mais si je supprime mon document, et que je retourne dans mon fichier Lst_fichiers via WDMap il ne me le trouve plus...


Merci de votre aide
Miembro registrado
2.323 mensajes
Publicado el 24,julio 2014 - 16:08
Peut-être manque-t-il du code ?

Extrait de l'Aide en ligne de la fonction hAttacheMémo() : http://doc.pcsoft.fr/fr-FR/?1000003044173&name=HAttacheMemo_exemple

Exemple : Ajout d'un fichier dans un mémo binaire

L'exemple suivant permet d'ajouter un fichier quelconque dans une rubrique de type "mémo binaire" d'un fichier de données.
// Renseignement des différentes rubriques du fichier ...

// Un nom de fichier a été indiqué pour la description du produit ?
SI PAS SAI_NOM_FICHIER ~= "" ALORS
// Oui, on vérifie que ce fichier existe bien
SI fFichierExiste(SAI_NOM_FICHIER) = Faux ALORS
Erreur("Impossible d'ajouter " + ...
"le fichier de description du produit " + ...
"dans la base : ", HErreurInfo())
RETOUR // ou RENVOYER Faux
FIN

// Ajout du fichier qui contient la description du produit
// dans la rubrique mémo binaire de l'enregistrement
SI HAttacheMémo(PRODUIT, DESCRIPTIONPRODUIT, SAI_NOM_FICHIER, ...
hMemoBin, "Description du fichier") = Faux ALORS
Erreur("Impossible d'ajouter " + ...
"le fichier de description du produit " + ...
"dans la base : ", HErreurInfo())
RETOUR //ou RENVOYER Faux
FIN
FIN

// Ajoute (ou modifie) le produit au fichier des produits
SI HAjoute(PRODUIT) = Faux ALORS // ou SI HModifie(PRODUIT) = Faux ALORS
Erreur("Impossible de mettre à jour le fichier produit :", ...
HErreurInfo())
RETOUR //ou RENVOYER Faux
FIN

RENVOYER Vrai


--
Bon dev.
Jean-Pierre
Publicado el 24,julio 2014 - 16:20
c'est exactement ce que je fais Jean Pierre.
L'insertion dans mon fichier HFSQL se fait très bien.

Mais que devient il si je supprime le document source ?!
Et ben le document n'est plus accessible dans mon fichier HFSQL...
Miembro registrado
953 mensajes
Publicado el 24,julio 2014 - 16:37
re bonjour Mathieu,

attention à l'utilisation de WDMAP sur des rubriques mémo !!!

le fichier que vous aurez stocker dans votre mémo sera toujours disponible même après avoir supprimé là source, c'est justement le but du jeu.
Mais votre fichier devrait être extrait du mémo par HExtraitMemo() !
Publicado el 24,julio 2014 - 16:46
Bonjour Mathieu

donc, d'après ton code, que tu indique être complet, tu n'ajoute jamais
l'enregistrement dans la base

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXShowroom.com est disponible : Montrez vos projets !
Plus d'information sur http://fabriceharari.com



On 7/24/2014 7:14 AM, Mathieu wrote:
Merci de votre attention...

Mon code est simple :

j'ai un sélecteur de fichier qui incrémente une variable FicATransfere
Donc :
FicATransfere = "C:\mes document\Mon_Fichier" par exemple

j'ai un bouton valider où j'ai simplement :

HAttacheMémo(Lst_fichiers,document,FicATransfere)

Je veux donc ajouter dans le champs document de mon fichier HFSQL
Lst_fichiers le document FicATransfere.

ça marche bien mais si je supprime mon document, et que je retourne dans
mon fichier Lst_fichiers via WDMap il ne me le trouve plus...


Merci de votre aide
Miembro registrado
953 mensajes
Publicado el 24,julio 2014 - 16:50
re bonjour,

le nom complet du fichier que vous ajoutez est automatiquement sauvegardé dans les infos de la rubrique mémo ( fonction HInfoMémo() ),
et le bouton 'Jouer' de WDMap ne fait qu'un LanceAppliAssocié de ce chemin
il faut utiliser le bouton 'Extraire' si vous voulez passer par WDMap
Publicado el 24,julio 2014 - 16:55
mmm

Je pense que je commence à comprendre...

si je fais un HExtraitMémo() de mon enregistrement il me recrée mon document d'origine...

Comment puis_je faire si je ne veux pas qu'il me le recrée ?
Je voudrais simplement que mon appli ouvre le document.

Merci
Publicado el 09,junio 2017 - 15:42
bonjour,
voici un exemple qui marche bien pour un document word (.docx)

****FENETRE D'IMPORTATION DU DOCUMENT WORD****

**BOUTON SELECTEUR**
//sélection du fichier
sNomFichierword est une chaîne
sNomFichierword = fSélecteur("","","Sélectionnez un document...","Tous fichiers (.*)"+TAB+"*.*","*",fselOuvre+fselExiste)

//si un fichier est sélectionné
SI sNomFichierword <> "" ALORS
SAI_doc = sNomFichierword
FIN

**BOUTON D'ENREGISTREMENT**
//Enrégistrement du fichier word
HAttacheMémo(Nom_de_la_Table,Rubrique_de_la_table,SAI_doc,hMémoBin)
EcranVersFichier()
HAjoute(Nom_de_la_Table)

****FENETRE D'EXTRACTION ET D'AFFICHAGE DU DOCUMENT WORD****

**BOUTON D'AFFICHAGE**
//extraction et lecture du fichier word
HLitRecherchePremier(Nom_de_la_Table,nom_document,COMBO_nom_doc)
SI HTrouve() = Vrai ALORS
HLit(Nom_de_la_Table,hNumEnrEnCours)
HExtraitMémo(Nom_de_la_Table,document,"C:\temp.docx")
LanceAppliAssociée("C:\temp.docx")
FIN

NB:
1- la table ou le fichier dans lequel le document word est inséré contient 2 rubriques dans cet exemple: "document" et "nom_document".
c'est la rubrique "document", de type memo binaire, que le document word est attaché.
lors de l'extraction pour l'affichage du document :
- la fonction " HLitRecherchePremier" permet de trouver l'enrégistrement dans lequel se trouve le document à afficher.
- la fonction "HLit" permet de lire ledit enrégistrement avant d'extraire le document avec" HExtraitMémo"
- enfin "LanceAppliAssociée" permet d'affiche notre document word.

2-ma fenêtre d'extraction contient une combo, qui propose une liste de" nom_document" et un bouton qui contient le code : "//extraction et lecture du fichier word".
Publicado el 04,septiembre 2019 - 16:46
merci vraiment je suis très contant de votre car je l'ai utilisé sa marche pour moi aussi..

svp qui peut m'explique comment faire un badge sur windev genre sur l'etat on prend combien de pour la largeur et la longeur??
Miembro registrado
13 mensajes
Publicado el 14,julio 2020 - 17:54
Bonjour à tous, j'ai aussi le même problème. j'ai essaye ces lignes de code, l'enregistrement a été bien effectuer mais la colonne binaire est vide. quelqu'un peut m'aider svp...