[Résolu][Writer] Nom de fichier automatique.

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 !

[Résolu][Writer] Nom de fichier automatique.

Messagepar WD_And_Co » 23 Mai 2018 18:06

Bonjour le Forum.

Je voudrais si cela est possible que le nom du fichier soit automatiquement issu de valeurs présentes dans ce fichier.
Tout sera beaucoup plus clair avec le fichier joint.

D'avance merci.
Pièces jointes
Lettre WDAndCo.odt
Voici un Fichier exemple.
(49.2 Kio) Téléchargé 17 fois
Dernière édition par WD_And_Co le 11 Juin 2018 18:01, édité 2 fois.
LibreOffice : 6.0.6 version stable.
macOS : 10.13.
Avatar de l’utilisateur
WD_And_Co
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 60
Inscrit le : 04 Mai 2017 15:27
Localisation : Hauts de France

Re: [Writer] Nom de fichier automatique.

Messagepar tintin » 23 Mai 2018 18:35

Bonjour,

Ce sujet peut-il être un point de départ à votre réflexion ?
AOO 4.1.5 / MacOS 10.13.6 High Sierra / SSD / RAM 8Go / Time Machine
Java 1.8.0_191 / Firefox / Safari / Thunderbird
Tutoriels du forum pour MacOS
Pour préserver vos documents, faites des sauvegardes régulières.
Avatar de l’utilisateur
tintin
GourOOu
GourOOu
 
Message(s) : 5436
Inscrit le : 18 Juil 2008 16:29
Localisation : F-Oise + F-Savoie

Re: [Writer] Nom de fichier automatique.

Messagepar WD_And_Co » 23 Mai 2018 22:03

Bonjour le Forum

Merci Tintin, pour cette piste, mais j'avoue ne rien y comprendre, ni même comment déclencher cette macro.
Je l'ai intégré a mon fichier, mais rien ne change.
LibreOffice : 6.0.6 version stable.
macOS : 10.13.
Avatar de l’utilisateur
WD_And_Co
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 60
Inscrit le : 04 Mai 2017 15:27
Localisation : Hauts de France

Re: [Writer] Nom de fichier automatique.

Messagepar Hubert Lambert » 24 Mai 2018 13:24

Bonjour,

Le contexte d'utilisation n'est pas très clair mais, à tout hasard, s'il s'agit de publipostage, il est possible d'utiliser un champ de base de données (même non inclus dans le document) comme nom de sauvegarde du ou des documents fusionnés.
Cordialement.
AOOo 4.1.2 sur Win7
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Hubert Lambert
InconditiOOnnel
InconditiOOnnel
 
Message(s) : 963
Inscrit le : 06 Avr 2016 08:26

Re: [Writer] Nom de fichier automatique.

Messagepar WD_And_Co » 24 Mai 2018 15:25

Bonjour le Forum

Non ce n'est pas du publipostage, mais effectivement un champ nommé Ref issu d'une base me sert à remplir une partie Ref de la lettre, voir l'exemple joint. Aussi j'aimerai que le changement de valeur du champs Ref change le nom du fichier .
LibreOffice : 6.0.6 version stable.
macOS : 10.13.
Avatar de l’utilisateur
WD_And_Co
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 60
Inscrit le : 04 Mai 2017 15:27
Localisation : Hauts de France

Re: [Writer] Nom de fichier automatique.

Messagepar Piaf » 24 Mai 2018 17:10

Bonjour
Sans la base de données, difficile de te répondre efficacement.
Après pas sûr d'avoir tout compris :lol:
Tu peux tester à partir de ton fichier exemple
Code : Tout sélectionner   AgrandirRéduire
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
A+
Libre Office Version: 6.0.6 et Apache OpenOffice 4.1.5 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5395
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Writer] Nom de fichier automatique.

Messagepar WD_And_Co » 24 Mai 2018 17:53

Bonjour le Forum

J'ai enfin je pense intégré la Macro à mon fichier exemple. Que je joint à nouveau.
A priori cela fonctionne, car j'ai bien un fichier qui c'est créé avec le bon nom.
1) Le nom du fichier dans la fenêtre de saisie du texte ne change pas ?
2) Quand cette macro se déclenche ?

J'ai passé par exécuté je ne sais pas si c'est bien comme cela qu'il faut faire.

En tout cas bravo.
Pièces jointes
Lettre WDAndCo.odt
Ver 2
(81.72 Kio) Téléchargé 10 fois
LibreOffice : 6.0.6 version stable.
macOS : 10.13.
Avatar de l’utilisateur
WD_And_Co
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 60
Inscrit le : 04 Mai 2017 15:27
Localisation : Hauts de France

Re: [Writer] Nom de fichier automatique.

Messagepar Piaf » 25 Mai 2018 00:23

Re
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.
Oui avec les seuls éléments dont on dispose pour te répondre.
Hubert Lambert a écrit:Le contexte d'utilisation n'est pas très clair
+1
Piaf a écrit:Sans la base de données
S'il ne s'agit que d"'un enregistrement spécifique pourquoi ne pas créer directement un formulaire qui affiche les informations voulues ?
A+
Libre Office Version: 6.0.6 et Apache OpenOffice 4.1.5 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5395
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Writer] Nom de fichier automatique.

Messagepar WD_And_Co » 25 Mai 2018 14:53

Bonjour le Forum

Voici comment j'utilise ce fichier.

Pour mettre le destinataire avec adresse, vos Ref, Nos Ref etc...
Je clique sur la pile de pièces pour ouvrir ma base, puis je choisit la ligne qui me convient, puis copie les données en cliquant sur la lettre munie d'un + vert est un rectangle bleu.
Puis je ferme avec base avec de nouveau un clique sur la pile de pièces.

Une fois la lettre terminée je lance votre macro avec Exécuté.
Un bouton serait le top, mais il ne doit être présent que sur la barre d'outil Writer.

Si l'utilisation formulaire est plus pratique. Pourquoi pas.
LibreOffice : 6.0.6 version stable.
macOS : 10.13.
Avatar de l’utilisateur
WD_And_Co
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 60
Inscrit le : 04 Mai 2017 15:27
Localisation : Hauts de France

Re: [Writer] Nom de fichier automatique.

Messagepar Piaf » 25 Mai 2018 19:14

Bonjour
WD_And_Co a écrit:Si l'utilisation formulaire est plus pratique. Pourquoi pas.
Par là j'entendais de renseigner la lettre directement à partir de la base de données.
Transformation de ta lettre en modèle avec des champs utilisateur à la place des champs de base de données.
ModelLettre.ott
(18.98 Kio) Téléchargé 12 fois
Créer un formulaire affichant les données voulues et permettant de renseigner et d'enregistrer le fichier Writer
Formulaire.png

Code : Tout sélectionner   AgrandirRéduire
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
Le fichier base de données et le fichier modèle doivent être dans le même répertoire.
Le nouveau fichier est enregistré dans le même répertoire.
A+
Pièces jointes
Adresses.odb
(23.73 Kio) Téléchargé 8 fois
Libre Office Version: 6.0.6 et Apache OpenOffice 4.1.5 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5395
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Writer] Nom de fichier automatique.

Messagepar WD_And_Co » 26 Mai 2018 10:22

Bonjour le Forum.

Merci Piaf. J'ai essayé votre proposition elle me convient parfaitement, mais après le lancement de "ModelLettre.ott" j'ai le message d'erreur suivant "Impossible de charger le contenu des données. Il n'existe pas de requête nommée "Contacts" " à l'ouverture de "Sans nom".
Mais l'utilisation est parfaite. Encore merci.
LibreOffice : 6.0.6 version stable.
macOS : 10.13.
Avatar de l’utilisateur
WD_And_Co
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 60
Inscrit le : 04 Mai 2017 15:27
Localisation : Hauts de France

Re: [Writer] Nom de fichier automatique.

Messagepar Piaf » 26 Mai 2018 17:11

Bonjour
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
Je ne reproduis pas donc difficile de t'aider.
L'erreur survient elle avec les fichiers envoyés ou avec tes fichiers originaux ?
Le fichier modèle (.ott) comme le fichier créé ne devrait avoir aucune relation avec la base de données.
A+
Libre Office Version: 6.0.6 et Apache OpenOffice 4.1.5 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5395
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Writer] Nom de fichier automatique.

Messagepar WD_And_Co » 26 Mai 2018 17:28

Bonjour le Forum,
Bonjour Piaf,

J'ai mis les deux fichiers dans le même dossier ou répertoire, comme demandé. J'ai toujours le même message d'erreur lors du lancement de "ModelLettre.ott" comme expliqué ici dessous.

1) - Les deux bases ou le même nom, mais ne sont pas dans le même dossier !
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.

Je pense que ceci explique cela.
LibreOffice : 6.0.6 version stable.
macOS : 10.13.
Avatar de l’utilisateur
WD_And_Co
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 60
Inscrit le : 04 Mai 2017 15:27
Localisation : Hauts de France

Re: [Writer] Nom de fichier automatique.

Messagepar Piaf » 26 Mai 2018 18:37

Re
Pourrais tu joindre ton fichier modèle, le tien pas celui que je t'ai transmis.
A+
Libre Office Version: 6.0.6 et Apache OpenOffice 4.1.5 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5395
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Writer] Nom de fichier automatique.

Messagepar WD_And_Co » 26 Mai 2018 20:10

Bonjour le Forum.

Voici le fichier demandé c'est celui que j'ai téléchargé ici.
Pièces jointes
ModelLettre.ott
(18.98 Kio) Téléchargé 7 fois
LibreOffice : 6.0.6 version stable.
macOS : 10.13.
Avatar de l’utilisateur
WD_And_Co
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 60
Inscrit le : 04 Mai 2017 15:27
Localisation : Hauts de France

Re: [Writer] Nom de fichier automatique.

Messagepar Piaf » 27 Mai 2018 11:14

Bonjour
Peux tu tester les fichiers joint ?
A+
Pièces jointes
WDAC.zip
(33.84 Kio) Téléchargé 7 fois
Libre Office Version: 6.0.6 et Apache OpenOffice 4.1.5 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5395
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Writer] Nom de fichier automatique.

Messagepar WD_And_Co » 27 Mai 2018 16:20

Bonjour le Forum

J'ai de nouveau téléchargé les derniers fichiers, mais rien n'y fait, même message d'erreur, et toujours la connexion à ma base d'origine.
J'ai donc forcé le changement de base, je me suis donc connecté a votre base, mais la impossible de mettre les données choisi dans la lettre.

A mon avis, le message d'erreur persistant du début, n'est pas bloquant. Donc je vous remercie beaucoup de votre patience.
Encore merci.
LibreOffice : 6.0.6 version stable.
macOS : 10.13.
Avatar de l’utilisateur
WD_And_Co
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 60
Inscrit le : 04 Mai 2017 15:27
Localisation : Hauts de France

Re: [Writer] Nom de fichier automatique.

Messagepar Piaf » 27 Mai 2018 18:50

Re
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.
J'avoue ne pas tout comprendre.
La base n'a pas besoin d'être enregistrée.
La procédure à suivre est d'ouvrir la base de données, d'ouvrir le formulaire Contacts, d'afficher l'enregistrement voulu, puis d'appuyer sur le bouton Lettre.
A+
Libre Office Version: 6.0.6 et Apache OpenOffice 4.1.5 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5395
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Writer] Nom de fichier automatique.

Messagepar WD_And_Co » 27 Mai 2018 21:42

Bonjour le Forum

Il est vrai, qu'en procédant de cette façon j'ai bien les données (de votre base) choisi dans la lettre qui s'ouvre. Mais j'ai toujours le message d'erreur. Et si je clique sur la pile de pièces c'est ma base qui est présenté dans Writer.
LibreOffice : 6.0.6 version stable.
macOS : 10.13.
Avatar de l’utilisateur
WD_And_Co
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 60
Inscrit le : 04 Mai 2017 15:27
Localisation : Hauts de France

Re: [Writer] Nom de fichier automatique.

Messagepar Bidouille » 28 Mai 2018 09:34

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
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 9772
Inscrit le : 08 Nov 2005 17:23
Localisation : Brest, France

Re: [Writer] Nom de fichier automatique.

Messagepar WD_And_Co » 28 Mai 2018 10:41

Bonjour le Forum
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

Oui j'avais lu, et pardon j'ai oublié de mettre dans ma signature le 4 final, qui change tout comme préciser dans ce même fil. Merci encore.
LibreOffice : 6.0.6 version stable.
macOS : 10.13.
Avatar de l’utilisateur
WD_And_Co
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 60
Inscrit le : 04 Mai 2017 15:27
Localisation : Hauts de France

Re: [Writer] Nom de fichier automatique.

Messagepar Bidouille » 28 Mai 2018 11:12

WD_And_Co a écrit:Oui j'avais lu

Non, rouvrez vos yeux et regardez le 3e message.
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 9772
Inscrit le : 08 Nov 2005 17:23
Localisation : Brest, France

Re: [Writer] Nom de fichier automatique.

Messagepar Piaf » 28 Mai 2018 11:52

Bonjour
Je pense avoir enfin compris ce que tu veux faire, toujours été lent :lol: .
Une fois le document Writer affiché, tu affiches les sources de données, il est normal que ma base n'apparaisse pas puisqu'elle n'est pas enregistrée.
Il ne servirait à rien de l'afficher puisque le modèle comme le document ne contient aucun champ de base de données
WD_And_Co a écrit:Non ce n'est pas du publipostage,
.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.
A+
Libre Office Version: 6.0.6 et Apache OpenOffice 4.1.5 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5395
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)