Modérateur: Vilains modOOs
Sub Main
Dim oDoc as Object,lesChamps As Object, unChamp As Object
Dim refer as String, laDate as String, NomFichier as String, Adresse as Variant
oDoc = thisComponent
Adresse = Split(oDoc.URL,"/")
Adresse(UBound(Adresse)) = ""
Adresse = Join(Adresse,"/")
refer = oDoc.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.DataBase.Adresses.Contacts.Refer").DependentTextFields(0).Content
lesChamps = oDoc.TextFields.createEnumeration
Do While lesChamps.hasMoreElements
unChamp = lesChamps.NextElement
If unChamp.supportsService("com.sun.star.text.textfield.DateTime") Then
If unChamp.NumberFormat = 10107 Then
laDate = unchamp.Anchor.String
End If
End If
Loop
NomFichier = refer & laDate
adresseDoc = convertToURL(Adresse & NomFichier & ".odt")
oDoc.storeToURL(adresseDoc, Array() )
End Sub
Oui avec les seuls éléments dont on dispose pour te répondre.WD_And_Co a écrit:J'ai passé par exécuté je ne sais pas si c'est bien comme cela qu'il faut faire.
+1Hubert Lambert a écrit:Le contexte d'utilisation n'est pas très clair
S'il ne s'agit que d"'un enregistrement spécifique pourquoi ne pas créer directement un formulaire qui affiche les informations voulues ?Piaf a écrit:Sans la base de données
Par là j'entendais de renseigner la lettre directement à partir de la base de données.WD_And_Co a écrit:Si l'utilisation formulaire est plus pratique. Pourquoi pas.
Sub Lettre(oEv as Object)
oForm = oEv.Source.Model.Parent
Adresse = Split(thisDatabaseDocument.URL,"/")
Adresse(UBound(Adresse)) = ""
Adresse = Join(Adresse,"/")
adresseDoc = convertToURL(Adresse & "ModelLettre.ott")
oDoc = StarDesktop.loadComponentFromURL(adresseDoc, "_blank", 0, Array() )
With oDoc
.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.Identité").Content = oForm.getByName("txtContact").Text
.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.Adresse").Content = oForm.getByName("txtAdresse").Text
.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.Adresse2").Content = oForm.getByName("txtAdresse2").Text
.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.CPV").Content = oForm.getByName("txtCPV").Text
.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.Type").Content = oForm.getByName("txtType").Text
.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.IdContact").Content = oForm.getByName("fmtrefContact").CurrentValue
.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.Refer").Content = oForm.getByName("txtRefer").Text
End With
lesChamps = oDoc.TextFields.createEnumeration
Do While lesChamps.hasMoreElements
unChamp = lesChamps.NextElement
If unChamp.supportsService("com.sun.star.text.textfield.DateTime") Then
If unChamp.NumberFormat = 10107 Then
laDate = unchamp.Anchor.String
End If
End If
Loop
NomFichier = oForm.getByName("txtRefer").Text & laDate
Nouvadresse = convertToURL(Adresse & NomFichier & ".odt")
If FileExists(Nouvadresse) Then Kill(Nouvadresse)
oDoc.storeAsURL(Nouvadresse, Array())
End Sub
Je ne reproduis pas donc difficile de t'aider.WD_And_Co a écrit:mais après le lancement de "ModelLettre.ott" j'ai le message d'erreur suivant "Impossible de charger le contenu des données
J'avoue ne pas tout comprendre.WD_And_Co a écrit:2) - Lorsque je charge la base clique sur la pile de pièces pour une modification de destinataire par exemple dans la lettre, c'est ma base qui s'ouvre alors qu'elle n'est pas dans le même dossier.
Dans votre signature, il y a écrit:LibreOffiche Version: 6.0. sous macOS 10.13.
Bidouille a écrit:Dans votre signature, il y a écrit:LibreOffiche Version: 6.0. sous macOS 10.13.
Veuillez prendre connaissance de ce fil : https://forum.openoffice.org/fr/forum/v ... =2&t=56905
WD_And_Co a écrit:Oui j'avais lu
.La création du fichier à partir du modèle se fait uniquement à partir du formulaire Contacts, tu affiches l'enregistrement voulu et tu cliques sur le bouton Lettre.WD_And_Co a écrit:Non ce n'est pas du publipostage,
Utilisateur(s) parcourant ce forum : Fredab et 0 invité(s)