Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fusions avec open office : fin ?

12 réponses
Avatar
Jacques TREPP
Bonjour,

j'ai avancé dans mes recherches de fusions avec open office writer. En gros,
outre les fonctions de l'exemple de windev, je peux maintenant exporter en
pdf, enregistrer sous le format word. Il me manque une routine pour exécuter
des macros, pour pouvoir réellement donner une alternative à mes clients.

J'ai essayé la chose suivante :
enregistrement d'une macro qui insère une en tête . cette macro s'appelle
entete (original, non ?) et voici son code :
sub entete
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "PageStyle"
args1(0).Value = "Standard"
args1(1).Name = "On"
args1(1).Value = true
dispatcher.executeDispatch(document, ".uno:InsertPageHeader", "", 0,
args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Text"
args2(0).Value = "AVOWIN_V10"
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args2())
end sub

la macro s'exécute normalement si je dis Outils..Macros..Executer..entete.

j'enregistre une nouvelle macro, nommée 'lancemacro', dans laquelle
j'exécute la macro 'entete'.
voici son code :

sub lancemacro
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:RunMacro", "", 0, Array())
end sub

je ne trouve nulle part de référence à la macro 'entete'. Il semblerait que
lorsque je lance la macro 'lancemacro', il me demande où se trouve la macro
'entete'. Si je lui donne le chemin (mes macros..standard..module1) ça
exécute bien la macro 'entete'.
ce qui ne me sert strictement à rien. :(
Est-ce que vous avez des éléments concernant ces maniplations ?
si oui, bienvenue ! ;)

merci

PS : je vais voir si je peux utiliser des boutons pour faire ça.
--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)

2 réponses

1 2
Avatar
Jacques TREPP
Bonjour Bruno.
ça fonctionne très bien. Dans mon projet de test, j'ai créé un bouton qui:
ouvre un document odt, fait une fusion, enregistre au format word, ferme le
document,
lanceappliassociee du fichier.doc.
sans apercevoir une fois open office.
merci

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Avatar
Bruno
De rien avec plaisir.

Moi j'ai juste un problème avec cette méthode.

J'ai plusieurs doc ouvert en même temps et je fais des copier-coller +
recherche-remplace en selectionnant l'un ou l'autre doc.
En visible ça marche bien mais en invisible j'ai l'impression qu'il se
perd dans les selections de doc. Je dois creuser la question.

Jacques TREPP a utilisé son clavier pour écrire :
Bonjour Bruno.
ça fonctionne très bien. Dans mon projet de test, j'ai créé un bouton qui:
ouvre un document odt, fait une fusion, enregistre au format word, ferme le
document,
lanceappliassociee du fichier.doc.
sans apercevoir une fois open office.
merci



--
Bruno A

suivre ce lien pour répondre :
http://cerbermail.com/?TF4s3h4ejs
;)
1 2