[Résolu] [Base] Modification chemin d'accès image pour affichage dans rapport

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
ln500cb
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 05 janv. 2024 11:30

[Résolu] [Base] Modification chemin d'accès image pour affichage dans rapport

Message par ln500cb »

Bonjour à tous,

Je crée une base pour une amie vec 2 tables, pour l'instant : 1 table Enfants et 1 table Bilan. '

L'objectif de cette base est d'enregistrer un bilan par enfant, avec plusieurs photos à l'intérieur via un formulaire, puis de générer un rapport de ce même bilan.

Pour faciliter la saisie, j'ai créé un champ "sélection de fichier" dans mon formulaire pour importer les images, avec une macro qui enregistre ce chemin d'accès (C://...) dans la table Bilan.
Jusqu'ici tout va bien.

Là où ça se corse, c'est pour afficher ces images dans le bilan. Après plus de recherches, je crois comprendre que le chemin d'accès des images doit commencer par "file:///" pour pouvoir s'afficher dans des contrôles images du rapport.

Il faudrait donc qu'à chaque nouvel enregistrement de bilan, une macro (ou autre?) puisse modifier automatiquement le chemin d'accès des images dans la table, pour qu'il passe de "C:/..." à "File:///C:/...".

J'ai essayé via une requête Replace mais ça n'a pas l'air de fonctionner.

Peut-être que je suis partie dans une mauvaise direction...

Est-ce que quelqu'un a une solution à me proposer svp ?
Dernière modification par ln500cb le 19 févr. 2025 10:49, modifié 3 fois.
Libre Office 24.8.4.2
Windows 11 pro
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 713
Inscription : 20 déc. 2017 14:45

Re: Modification chemin d'accès image pour affichage dans rapport

Message par rollmops »

Re,
ln500cb a écrit : 17 févr. 2025 18:50 Je crée une base pour une amie vec 2 tables, pour l'instant : 1 table Enfants et 1 table Bilan. '
Je vous l'ai déjà signalé.
Merci de joindre l'ODB parce que jusque là, il est impossible de répondre.

PS : et il faut aussi mettre [Base] dans votre titre (lire le bandeau rouge en haut)
OpenOffice 4.1.15 - Windows 10
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1480
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: Modification chemin d'accès image pour affichage dans rapport

Message par jeanmi2403 »

Bonsoir,
Il faut que dans une macro, tu utilise la fonction ConvertToURL ("ton chemin d'image").
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
ln500cb
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 05 janv. 2024 11:30

Re: BASE Modification chemin d'accès image pour affichage dans rapport

Message par ln500cb »

Bonjour,

Merci pour le lien vers la macro ConvertToURL, malheureusement je ne comprends pas trop comment je dois procéder...

Je vous joins ma base, allégée au maximum.

Serait-il possible de faire cette conversion d'URL dans la même macro que celle utilisée pour mettre à jour le champ de la table (grâce au sélecteur de fichier) dans le formulaire BILAN ? je vous joins la macro en question.

De plus, j'ai environ 31 images à insérer dans chaque bilan, faudra-t-il que je fasse 31 macros (une pour chaque photo), où y aurait-il une astuce pour qu'une seule macro puisse s'appliquer à toutes les images ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 24.8.4.2
Windows 11 pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25970
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par Dude »

Salut,

Il est d'usage de citer l'auteur de la macro d'origine dont tu t'inspires.

L'instruction est mal positionnée. Il faut qu'elle soit placée sur la zone de texte :

Code : Tout sélectionner

sub AfficherImage
'Code original fourni par <auteur> : https://forum.openoffice.org/fr/<lien>
dim PysForm as object

PysForm = thiscomponent.drawPage.forms.getByName("MainForm")

PysForm.getByName("ImageControl").ImageURL = PysForm.getByName("url").Text
   
end sub

sub EnregistrerChemin(PysEvent)
dim PysForm as object

PysForm = thiscomponent.drawPage.forms.getByName("MainForm")

PysForm.getByName("url").Text = ConvertToUrl(PysEvent.Source.Text)
PysForm.getByName("url").commit

AfficherImage

end sub
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
ln500cb
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 05 janv. 2024 11:30

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par ln500cb »

J'ai fait tellement de tests et de recherches à gauche à droite que je ne me souviens plus où j'ai trouvé ce code...

Je suis désolée, je ne comprends pas ce que je dois faire :cry:

Quand je place la macro "enregistrer le lien" sur la zone de texte (quand "texte modifié"), rien ne s'affiche dans la zone..
En revanche, quand je place la macro sur le sélecteur de fichier (quand "texte modifié), le chemin de l'image se reporte bien dans la zone de texte reliée au champ de ma table.
Par contre, gros problème : ça ne met pas le chemin à jour dans ma table Bilan... Et donc, forcément, ça ne convertit pas non plus le chemin en url.

La macro Afficher image sur le controle picto, fonctionne parfaitement en revanche.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 24.8.4.2
Windows 11 pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25970
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par Dude »

Le champ de donnée de ton contrôle ne correspond pas à la colonne de la table.
capture.png
Franchement quand je vois l'usine à gaz que tu prépares, je pense que tu devrais déjà simplifier ta table BILAN.
Parce qu'avec des noms de colonnes à rallonge, ça va être coton pour les requêtes.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
ln500cb
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 05 janv. 2024 11:30

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par ln500cb »

En effet.... Quelle idiote.... A force d'avoir le nez dedans, je pense que je vois double...

Merci beaucoup, ça fonctionne désormais ! :super:

Par contre, impossible d'afficher l'image dans mon rapport..
J'ai inséré un contrôle d'image (Données : "Champ ou formule" / Champ de données : "HyperlienPhoto1").

Qu'est-ce que je fais de mal ?
Libre Office 24.8.4.2
Windows 11 pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25970
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par Dude »

ln500cb a écrit : 18 févr. 2025 11:13 Qu'est-ce que je fais de mal ?
Déjà, tu ne tiens pas compte de ce que je te dis quant à la complexité du nom de tes champs. :marto:
Parce que vraiment à chaque fois, il faut s'accrocher à te décrypter.
Tu lances une macro Main :

Code : Tout sélectionner

Sub Main(oEvt as Object)
	oDoc = ThisDatabasedocument()
	oForm = oEvt.Source.Model.Parent
	nId = oForm.getByName("ID ENFANT").CurrentValue
	sSQL = "SELECT ""Nom et prénom"" FROM ""TABLE ENFANTS"
	oCnx = oDoc.CurrentController.ActiveConnection
	oCnx.queries.getByName("Requête_TABLE BILAN").Command = sSQL
	oRapport = oDoc.ReportDocuments.getByName("Rapport_BILAN").open()
End Sub
Là tu réécris la requête pour juste y mettre la colonne "Nom et prénom".
Comment veux-tu que ton rapport trouve les autres informations ?
ln500cb
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 05 janv. 2024 11:30

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par ln500cb »

Je n'avais pas vu ton message sur la complexité des noms, désolée ! 😅

Je suis d'accord avec toi, c'est effectivement une usine à gaz mon histoire.... Au début, j'avais scindé la table bilan en plusieurs tables, mais je galérais un peu à tout rassembler donc j'ai décidé de tout réunir..
Maintenant que tout ma structure est créée, je t'avoue que je n'ai vraiment pas le courage de tout reprendre.

Pour la macro Main, elle est dans mes macros mais n'est appliquée à rien car je n'arrive pas à m'en servir.
Je l'ai juste gardée au cas où.

Mon problème actuel (et j'ose espérer le dernier car je commence à désespérer) est la conversion des url dans mon rapport.

S'il n'y a pas de solution, j'aurais tout fait ça pour rien 😭😭
Libre Office 24.8.4.2
Windows 11 pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25970
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par Dude »

ln500cb a écrit : 18 févr. 2025 13:14Pour la macro Main, elle est dans mes macros mais n'est appliquée à rien
Si, elle est branchée à un bouton dans le formulaire "TABLE_ENFANTS".
Ici, c'est la section Macro dédiée aux problèmes macros.
Donc si tu veux que cela fonctionne, il faut reprendre l'intégralité de ta requête nommée "Requête_Table BILAN".
D'où ma remarque quant à la complexité des colonnes qui rend le SQL complétement délirant :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
ln500cb
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 05 janv. 2024 11:30

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par ln500cb »

En effet, j'avais modifié la base entre-temps et je ne l'avais pas renvoyée : la voici.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 24.8.4.2
Windows 11 pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25970
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par Dude »

Bon, je n'ai plus de temps à consacrer à ton problème.
J'ai donc repris ton dernier ODB et j'ai ajouté un rapport basé sur une requête et un formulaire.
Pour que cela marche, il faut qu'il y ait un chemin valide vers une image pour la colonne "HyperlienPhoto1" dans "TABLE BILAN"
Tu auras ainsi toutes les billes pour comprendre comment cela fonctionne.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
ln500cb
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 05 janv. 2024 11:30

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par ln500cb »

Sincèrement désolée pour le dérangement, et merci pour la base, mais malheureusement les photos ne s'affichent toujours pas dans le rapport.

J'ai désinstallé ma version de LibreOffice pour installer la version antérieure plus stable, comme tu me l'avais conseillé, mais ça n'a rien changé au niveau de l'affichage.

Est-ce que tu peux me dire si, sur ton poste, les images s'affichent correctement dans le rapport stp ?
Libre Office 24.8.4.2
Windows 11 pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25970
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par Dude »

ln500cb a écrit : 18 févr. 2025 16:34 sur ton poste, les images s'affichent correctement dans le rapport stp ?
Hum, quand je fournis quelque chose, c'est que c'est testé et approuvé.
Merci de faire la même copie d'écran :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
ln500cb
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 05 janv. 2024 11:30

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par ln500cb »

Bonjour Dude,

Je n'ai jamais voulu sous-entendre que ta base n'était pas opérationnelle... je te demandais juste si les photos s'affichaient bien dans le rapport sur ton poste. Je n'avais pas mentionné de problème avec la modification du chemin d'accès dans la table.
J'ai finalement trouvé par hasard d'où venait le problème qui était tout bête : l'option Afficher les images n'était pas activée par défaut dans Writer....

J'ai désormais un problème avec la macro ConvertToUrl que je ne parviens pas à faire fonctionner pour les autres images dans mon formulaire..
J'ai essayé de dupliquer la macro en lui rajoutant un numéro (EnregistrerChemin2), et en modifiant le nom de la zone de texte de la 2eme image en "url2", et en la connectant au bon champ dans ma table. Ça ne marche pas.
J'ai aussi essayé de recopier/coller directement dans la macro existante les deux dernières lignes en modifiant "url" par "url2" (nom attribué à la zone de texte de ma 2eme image). Ça ne fonctionne pas non plus.

Décidément, quand un problème se résoud, un autre survient...

Aurais-tu une solution à me proposer stp ?
Dernière modification par ln500cb le 19 févr. 2025 09:35, modifié 1 fois.
Libre Office 24.8.4.2
Windows 11 pro
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12660
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par Bidouille »

Bonjour,
ln500cb a écrit : 19 févr. 2025 09:23J'ai désormais un problème avec la macro ConvertToUrl que je ne parviens pas à faire fonctionner pour les autres images dans mon formulaire.
Autre problème = nouveau sujet avec un titre en rapport
Ceci afin que nous ayons une base de connaissances optimum pour tous ceux effectuant des recherches dans ce forum.

Je vous invite à (re)lire nos règles et à baliser ce fil comme [Résolu]
ln500cb
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 05 janv. 2024 11:30

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par ln500cb »

Bonjour,

Je ne comprends pas car il s'agit bien toujours du même problème de gestion des url pour affichage d'images dans un rapport.

Je pense qu'il est plus clair que je la pose dans la continuité ici, car il y a l'historique des manipulations déjà effectuées sur ma base (ainsi que tous les fichiers liés), non ?
Libre Office 24.8.4.2
Windows 11 pro
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12660
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: [Base] Modification chemin d'accès image pour affichage dans rapport

Message par Bidouille »

ln500cb a écrit : 19 févr. 2025 09:39 Je ne comprends pas car il s'agit bien toujours du même problème de gestion des url pour affichage d'images dans un rapport.
Non puisque selon vos dires, avec une image, tout fonctionne.
Maintenant ce serait plutôt l'usage de ConvertToUrl pour stocker plusieurs chemins d'accès.

D'ailleurs si je ne m'abuse, c'est ce que vous avez fait sur le forum Ask.LibreOffice non ?