[Résolu][Writer] Insérer un nombre variable de page type

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] Insérer un nombre variable de page type

Messagepar ooSikas » 26 Mai 2018 20:05

Bonjour,

Je sollicite votre aide dans le cadre de l'outil que je développe et qui me donne du fil a retordre.

J'utilise un tableur Calc dans lequel je saisi et calcule diverses informations. Informations qui par la suite sont dispatchées à différents repères de textes lors de l'édition de mon fichier Writer.
Mon fichier Writer est un modèle de devis pour la vente de bâtiment constitué comme suit :

Page de garde
Informations du bâtiment
Tableau récapitulatif des prestations
Conditions générales

Jusqu'ici tout va bien. Mais la situation se corse lorsque j'ai plusieurs bâtiments à vendre dans le même devis. Exemple : pour 2 bâtiment je voudrais obtenir un devis sous la forme suivante :

Page de garde
Informations du bâtiment 1
Tableau récapitulatif des prestations du bâtiment 1
Informations du bâtiment 2
Tableau récapitulatif des prestations du bâtiment 2
Conditions générales

Je sais récupérer les informations du fichier Calc pour le bâtiment 2, mais ce que je ne sais pas faire c'est créer dans le fichier Writer les pages "Informations du bâtiment 2" et "Tableau récapitulatif des prestations du bâtiment 2". Ces deux pages doivent être identiques aux pages correspondantes du bâtiments 1, à l’exception de la valeurs des données Calc qui y sont incorporées.

Je vous avoue que je ne sais pas comment m'y prendre, les pistes que j'ai essayé n'ont pas abouti du tout.

Je vous remercie d'avance pour votre aide.

Vous trouverez un PJ mes fichiers Calc et Writer simplifiés et rendus anonymes.

A+
Pièces jointes
source_devis_modifie.ods
(27.7 Kio) Téléchargé 10 fois
MODELE_DEVIS.ott
(10.38 Kio) Téléchargé 10 fois
Dernière édition par ooSikas le 29 Mai 2018 11:07, édité 1 fois.
LibreOffice Version: 5.3.6.1 sous Windows 10
ooSikas
Membre lOOyal
Membre lOOyal
 
Message(s) : 30
Inscrit le : 22 Juil 2017 09:33

Re: [Writer] Insérer un nombre variable de page type

Messagepar jeanmimi » 27 Mai 2018 11:24

Bonjour,
ooSikas a écrit:Mais la situation se corse lorsque j'ai plusieurs bâtiments à vendre dans le même devis.
C'est une situation qui est facile à gérer par un Rapport de Base de données, moins facile avec Calc.
Avec une organisation différente des onglets, une sortie par Publipostage ou Étiquette pourrait être aussi envisagée.
LibreOffice Version: 6.0.4.2 (x64) (10 mai 2018)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 14360
Inscrit le : 03 Mars 2006 17:02
Localisation : Niort et sa Venise verte

Re: [Writer] Insérer un nombre variable de page type

Messagepar DLE » 27 Mai 2018 11:37

Bonjour,

Une solution à valider, basée sur l'insertion du modèle suivant nombre de bâtiment. Les signets de même nom sont indexés automatiquement à l'insertion.
Toutes mes modifs sont repérables par "***dle".
Cdlt.
Pièces jointes
source_devis_modifie.ods
(30.36 Kio) Téléchargé 6 fois
AOO 4.1.5 sous Windows 10 64 bits, FireFox, Thunderbird, ORB 1.2.1
Avatar de l’utilisateur
DLE
SuppOOrter
SuppOOrter
 
Message(s) : 1134
Inscrit le : 30 Déc 2007 19:56
Localisation : Lille

Re: [Writer] Insérer un nombre variable de page type

Messagepar ooSikas » 28 Mai 2018 22:34

Bonjour,

Merci DLE, c'est exactement ce type de méthode qu'il me fallait, je vais pouvoir me débloquer.

En testant un peu, il me vient 2 questions:
- Le nouveau document s'ajoute à la fin du document. J'imagine que cela vient du curseur positionné mais je ne suis pas sûr. Je souhaiterai faire l'insertion à un endroit précis, est t'il possible d'envoyer le curseur à un repère de texte précis pour faire l'insertion du document à la page suivant ce repère de texte? Si oui, comment?

- Quand j’insérai le nouveau document, sa première page prenait l'en tête de la première page de mon document principal. J'ai résolu le problème en changeant
Code : Tout sélectionner   AgrandirRéduire
PageApres = com.sun.star.style.BreakType.PAGE_AFTER
par
Code : Tout sélectionner   AgrandirRéduire
PageApres = com.sun.star.style.BreakType.PAGE_BEFORE
. Mais j'avoue que c'est un peu par hasard, et que je ne sais pas bien pourquoi ça a fonctionné..

Merci d'avance

Cordialement,
LibreOffice Version: 5.3.6.1 sous Windows 10
ooSikas
Membre lOOyal
Membre lOOyal
 
Message(s) : 30
Inscrit le : 22 Juil 2017 09:33

Re: [Writer] Insérer un nombre variable de page type

Messagepar DLE » 29 Mai 2018 09:53

Bonjour,

Par l'exemple, insérer le document avant les "Conditions générales..."
Au titre "Conditions générales..." du modèle, ajouter le signet "CGP", puis dans la macro dans la boucle "FOR" remplacer la séquence "IF .... END IF" par
Code : Tout sélectionner   AgrandirRéduire
   if n > 1 then                           
      PageApres = com.sun.star.style.BreakType.PAGE_AFTER   
      oSignetCGP = oWriter.Bookmarks.getByName("CGP")
      oTexte = oSignetCGP.Anchor.text         
      leCurseur = oTexte.createTextCursorByRange(oSignetCGP.Anchor.Start)   
      with leCurseur                        
'         .gotoEnd(false)                        
         .breakType=PageApres                   
      end with                              
      leCurseur.insertDocumentFromURL(sAdresseDoc,propFich()) 
   end if   


Cdlt.
AOO 4.1.5 sous Windows 10 64 bits, FireFox, Thunderbird, ORB 1.2.1
Avatar de l’utilisateur
DLE
SuppOOrter
SuppOOrter
 
Message(s) : 1134
Inscrit le : 30 Déc 2007 19:56
Localisation : Lille

Re: [Writer] Insérer un nombre variable de page type

Messagepar ooSikas » 29 Mai 2018 11:04

Bonjour,

Impeccable, merci beaucoup pour votre aide. Mon sujet est résolu

Cordialement,
LibreOffice Version: 5.3.6.1 sous Windows 10
ooSikas
Membre lOOyal
Membre lOOyal
 
Message(s) : 30
Inscrit le : 22 Juil 2017 09:33


Retour vers Macros et API

Qui est en ligne ?

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