Bonjour,
Grâce à l'aide de la communauté de ce forum, j'ai pu parvenir à éditer un devis sous Writer à l'aide d'une source de données sous Calc. (Fichier Modele Writer et Source Calc en PJ)
Malheureusement, je suis confronté à un nouveau problème..
J'arrive a insérer une chaîne de caractère au signet, mais je n'arrive pas à insérer plusieurs chaînes de caractères à la suite au même signet.
Pour donner un exemple concret de mon problème :
Dans le fichier Calc, quand on positionne le curseur sur la ligne commençant avec M.X et que l'on clique sur le bouton Editer le document, on obtient dans le modèle:
Prix de vente : 105,00€
Je souhaiterai ajouter le détail du prix et obtenir :
Prix de vente : 105,00€
SAUT DE LIGNE
OBJET A : [TABULATION] [TABULATION] [TABULATION] 55,00€
RETOUR A LA LIGNE
OBJET B :[TABULATION] [TABULATION] [TABULATION] 50,00€
Pour obtenir ce résultat, je pourrai créer plusieurs signets supplémentaires et les compléter un à un, mais le nombre d'objet étant variable(Objet A, Objet B, Objet C...), cette solution a sa limite.
J'ai aussi pensé a créer une chaîne de caractère regroupant le tout dans Calc et d’insérer directement la chaine de caractère totale sous Writer, mais de la même façon, je suis embêté car le nombre d'objet est variable...
J'ai essayé dans la macro de créer un nouveau signet après chaque appel de la fonction Ecrire_au_signet, mais ça ne fonctionne pas. Le nouveau signet se place juste devant le précédent et j'ai donc mon texte dans l'ordre inverse.
Bref j'ai essayé plusieurs choses.. Mais je ne parviens pas à trouver quelquechose qui fonctionne. Pouvez vous m'aider svp?
De plus, je débute en programmation sous libre office, (surtout Writer) et je ne sais pas connait pas les formules qui me permettent de sauter une ligne ou de créer une tabulation.
Merci d'avance
A+
[Résolu][Writer] Insérer un paragraphe au signet
Modérateur : Vilains modOOs
Règles du forum
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 !
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 !
-
- Membre OOrganisé
- Messages : 72
- Inscription : 22 juil. 2017 08:33
[Résolu][Writer] Insérer un paragraphe au signet
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par ooSikas le 20 janv. 2018 21:18, modifié 1 fois.
LibreOffice Version: 6.4.4.2 sous Windows 10
-
- RespOOnsable forum
- Messages : 12226
- Inscription : 08 nov. 2005 16:23
- Localisation : Caen, France
Re: [Writer] Insérer un paragraphe au signet
Pour être aidé efficacement par les bénévoles et surtout leur faire gagner du temps, veuillez fournir les éléments suivants :
- insérer dans le corps du message le code de la macro exposant le problème
- joindre un document explicatif intégrant cette macro avec les données de départ (feuille1) et le résultat à obtenir (feuille2)
- fournir un mode pas-à-pas permettant de reproduire ce qui a été fait ou ce que vous cherchez à faire pour arriver au problème
- ajouter des copies écran (situation avant / après) si cela permet de mieux comprendre
-
- Membre OOrganisé
- Messages : 72
- Inscription : 22 juil. 2017 08:33
Re: [Writer] Insérer un paragraphe au signet
Entendu Bidouille, je vais essayer de clarifier un peu :
Je met en PJ un pdf avec
1) capture d'écran de ce que je voudrais obtenir a terme
2) Capture d'écran de ce que j’espérai que mon code actuel fasse
3) Capture d'écran de ce que j’obtiens en fait avec mon code.
Je remet en PJ le fichier calc (avec mon code qui ne fonctionne pas) et le modèle.
J'ai conscience que c'est un problème de logique et pas un bug.
Je souhaite utiliser le repère de texte "Prix_vente" et insérer plusieurs info les unes derrières les autres a partir de ce signet. La méthode que j'ai essayé etait de créer un nouveau signet derrière chacune de ces info via macro. Mais le signet ne se place pas du tout ou je le souhaite.
Bout de code concerné :
Je met en PJ un pdf avec
1) capture d'écran de ce que je voudrais obtenir a terme
2) Capture d'écran de ce que j’espérai que mon code actuel fasse
3) Capture d'écran de ce que j’obtiens en fait avec mon code.
Je remet en PJ le fichier calc (avec mon code qui ne fonctionne pas) et le modèle.
J'ai conscience que c'est un problème de logique et pas un bug.
Je souhaite utiliser le repère de texte "Prix_vente" et insérer plusieurs info les unes derrières les autres a partir de ce signet. La méthode que j'ai essayé etait de créer un nouveau signet derrière chacune de ces info via macro. Mais le signet ne se place pas du tout ou je le souhaite.
Bout de code concerné :
Code : Tout sélectionner
EcrireAuSignet(oWriter, "Prix_Vente", sPrix)
'Saut de ligne après signet "Prix_vente"
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = oWriter.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())
'Insert un signet après le saut de ligne (Plus tard utilisation d'une boucle for pour créer un nombre de signet variable)
insere_signet(oWriter,"1")
'Ecrire sDetail au nouveau signet
EcrireAuSignet(oWriter, "1",sDetail)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice Version: 6.4.4.2 sous Windows 10
-
- SuppOOrter
- Messages : 1214
- Inscription : 06 avr. 2016 07:26
Re: [Writer] Insérer un paragraphe au signet
Bonjour,
En principe, tu peux utiliser les codes ascii correspondants :
Au passage, pourquoi passer par un tableur si tu ne l'utilises même pas pour calculer le prix global ?
Cordialement.
En principe, tu peux utiliser les codes ascii correspondants :
Code : Tout sélectionner
[...]
sPrix = oFeuille.getCellRangeByName("L" & lig).String
col = 12
lig = lig-1
sDetail = ""
detail = oFeuille.getCellByPosition(col, lig).String
do while detail <> ""
sDetail = sDetail + string(2, chr(13)) + string(2, chr(9)) + detail
sDetail = sDetail + string(3, chr(9))
sDetail = sDetail + oFeuille.getCellByPosition(col+1, lig).String
col = col+2
detail = oFeuille.getCellByPosition(col, lig).String
loop
sPrix = sPrix + sDetail
[...]
EcrireAuSignet(oWriter, "Prix_Vente", sPrix)
Cordialement.
AOOo 4.1.7 sur Win10
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)
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)
-
- Membre OOrganisé
- Messages : 72
- Inscription : 22 juil. 2017 08:33
Re: [Writer] Insérer un paragraphe au signet
Bonjour,
J'ai pu m'en sortir de cette manière , tout fonctionne
Pour répondre a ta question, j'utilise un autre fichier ou le tableur est bien nécessaire. Le fichier en pièce jointe est un exemple similaire pour illustrer mon problème
En tout cas merci a toi
J'ai pu m'en sortir de cette manière , tout fonctionne
Pour répondre a ta question, j'utilise un autre fichier ou le tableur est bien nécessaire. Le fichier en pièce jointe est un exemple similaire pour illustrer mon problème
En tout cas merci a toi
LibreOffice Version: 6.4.4.2 sous Windows 10