PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Memo PDF corrompu
Memo PDF corrompu
Débuté par Ambroise, 29 déc. 2021 11:42 - 10 réponses
Membre enregistré
112 messages
Posté le 29 décembre 2021 - 11:42
Bonjour,
J'utilise dans un même projet plusieurs fois le même code pour ajouter à une rubrique MEMO un fichier PDF.
Cela fonctionne sauf dans une fenêtre ou j'ai systématiquement un fichier PDF corrompu.
Le fichier est sur mon poste, je le sélectionne avec un fselecteur() qui rempli une zone de saisie (mais même problème avec le superchamp sélecteur de fichier)

D'où vient mon problème ?

Code d'ajout du fichier
EcranVersFichier()
Autorisation.CopiePDF=HAttacheMémo(Autorisation,CopiePDF,SAI_FIC)
Autorisation.IDPersonne=gsIdPersonne
HAjoute(Autorisation,hNumEnrEnCours)


Code pour visualiser mon PDF
HLitRecherchePremier(Autorisation,IDAutorisation,TABLE_Documents.COL_IdDocument)
SI HTrouve ALORS
sNomFichier est une chaîne=fRepTemp()+"Doc de "+Personne.Nom+"_"+Personne.Prenom+".pdf"
HExtraitMémo(Autorisation,CopiePDF,sNomFichier)
LanceAppliAssociée(sNomFichier)
FIN


Ma rubrique CopiePDF est bien du type sons, images, binaires,....
Si j'insère le PDF via WDMAP, cela fonctionne. Je pense donc avoir une erreur dans le code pour l'insérer.

Merci de votre aide car là, je tourne en rond et n'arrive pas à voir mon erreur.

Bonne journée.
Membre enregistré
49 messages
Posté le 29 décembre 2021 - 12:00
Bonjour,

As tu essayé avec hMémoBin + hAccepteFichierOuvert ?

Autorisation.CopiePDF=HAttacheMémo(Autorisation,CopiePDF,SAI_FIC, hMémoBin + hAccepteFichierOuvert )

Bon Dev

--
Une tête ne sert pas seulement à porter un chapeau !
Membre enregistré
112 messages
Posté le 29 décembre 2021 - 13:20
Bonjour et merci pour ta réponse.
Malheureusement cela ne change rien.
J ai aussi tente de mettre ma rubrique en "autre mémo binaire" a la place de "images" mais pas mieux

Je continue à chercher
Posté le 29 décembre 2021 - 13:24
Déjà, hNumEnrEnCours n'est PAS une option acceptée par hajoute:
https://doc.pcsoft.fr/?3044147
Membre enregistré
112 messages
Posté le 30 décembre 2021 - 07:31
Bonjour argus,
Merci pour cette remarque. Ca doit être la fatigue .....

Par contre, ca ne change rien.

J ai tenté de réparer le projet, l'analyse, recompiler.... rin ne fonctionne.

Plus gênant, le code qui fonctionnait dans d'autres fenetres, sur d'autres fichiers de donnée, me fait aussi des PDF corrompus.

Je ne sais plus quoi faire.

Si vous avez des idées....
Membre enregistré
4 322 messages
Posté le 30 décembre 2021 - 08:11
Bonjour,
1-Dans un premier temps, si tu as un champ image associé à CopiePDF, la HAjoute suffit
2-Que renvoie ton HAjoute ?

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
334 messages
Posté le 30 décembre 2021 - 09:35
Comme trop souvent, les codes retours, ne sont pas traités.

Pour chaque fonction ‘sensible’ toujours mettre en place un contrôle de bonne exécution.

--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -
Posté le 30 décembre 2021 - 11:05
Bonjour,
Bizarre d affecter au mémo le résultat de la fonction HAttacheMémo()…
HAttacheMemo() renvoie Vrai ou Faux.
Membre enregistré
31 messages
Posté le 30 décembre 2021 - 11:10
Bonjour,
HAttacheMemo() renvoie Vrai ou Faux. Il ne faut pas affecter vrai ou faux au mémo… selon moi.

--
Alexandre HIRAULT
TACT Conseil
http://www.tact-conseil.fr
Membre enregistré
112 messages
Posté le 31 décembre 2021 - 07:44
Bonjour,

Un grand , que dis je, un immense MERCI à Alexandre HIRAULT.

Le problème venait bien de là.

Voici le code qui fonctionne :
EcranVersFichier()
HAttacheMémo(Autorisation,CopiePDF,SAI_FIC)
Autorisation.IDPersonne=gsIdPersonne
HAjoute(Autorisation,hNumEnrEnCours)


Décidément, vivement dans 15 jours mes vacances car là, je n'ai plus les yeux en face du code.

Bon réveillon à tous et à l'année prochaine.
Membre enregistré
334 messages
Posté le 31 décembre 2021 - 12:34
Encore une fois, cela manque de contrôle, exemple:
EcranVersFichier()
SI HAttacheMémo(Autorisation,CopiePDF,SAI_FIC) ALORS
Autorisation.IDPersonne=gsIdPersonne
HAjoute(Autorisation,hNumEnrEnCours)
SINON
// gestion de l’erreur.
FIN


--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -