i

[macro] Exporter un formulaire en format PDF et l'envoyer par mail


Utilisation d'une macro qui va rechercher le nom à donner au pdf dans la propriété "Complément d'information" du bouton. Si on n'y met rien le pdf sera nommé SansNom.pdf


Le pdf est créé dans le même dossier que la base. Le programme initialise le destinataire avec "nom.prenom@truc.fr" Il suffit de remplacer par ce qu'on veut, ou rien si on désire le

compléter avant l'envoi.


Idem pour le sujet : "sujet du message"


exemple : EnvoiMail.odb


La macro :


option explicit


Sub SendMailPdf(oEvent)


dim sDir As String, sFileName As String, sUrl as string

dim Prop(0) As New com.sun.star.beans.PropertyValue


dim oMailAgent As Object, oMailClient As Object, oMailMessage As Object


If (Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools")) Then

       GlobalScope.BasicLibraries.LoadLibrary("Tools")

End If


sDir = DirectoryNameoutofPath(ThisDatabaseDocument.Url, "/")


if oEvent.source.model.Tag <> "" then

       sFileName = oEvent.source.model.Tag

else

       sFileName = "SansNom.pdf"

end if


sUrl = sDir & "/" & sFileName


Prop(0).Name = "FilterName"

Prop(0).Value = "writer_pdf_Export"


thiscomponent.storeToURL(sUrl, Prop())


If GetGUIType=1 Then

       oMailAgent=CreateUnoService("com.sun.star.system.SimpleSystemMail")

Else

       oMailAgent=CreateUnoService("com.sun.star.system.SimpleCommandMail")

End If


oMailClient = oMailAgent.querySimpleMailClient()

oMailMessage = oMailClient.createSimpleMailMessage()


oMailMessage.setRecipient("nom.prenom@truc.fr")

oMailMessage.setSubject("sujet du message")

oMailMessage.setAttachement(Array(sUrl))


oMailClient.sendSimpleMailMessage(oMailMessage, com.sun.star.system.SimpleMailClientFlags.DEFAULTS)

'oMailClient.sendSimpleMailMessage(oMailMessage, com.sun.star.system.SimpleMailClientFlags.NO_USER_INTERFACE)


End Sub