prog  

Re: [prog] Question de méthode

Pascal Chantriaux
Fri, 13 Nov 2009 09:10:32 -0800

Bonjour,

1) En quoi storeAsURL et storeToURL peuvent-ils déclencher une erreur d'E/S ? Je les utilise régulièrement. Je n'ai eu des problèmes qu'avec la version 3.0 de OOo qui comportait un bug dans le verrouillage des fichiers ouverts (si j'ai bien compris).

2) Pourquoi utiliser l'enregistreur est-il déconseillé ? En fait, je pose la question car, l'ayant utilisé récemment (alors que je n'ai pas l'habitude de la faire car je ne comprends pas toujours ce qu'il produit), j'ai eu une déconvenue : il semble que le code utilisant le dispatcher produit, lié à la version d'OOo utilisée lors de l'enregistrement de la macro, puisse provoquer plus facilement une erreur lorsqu'il est utilisé avec une version plus ancienne de OOo. Est-ce le cas ?

D'avance, merci.

Pascal


c c a écrit :
Bonjour,

Désolée d'apprendre que mes messages font "planter" certains logiciels de 
messagerie.

Pour en revenir à l'enregistreur, j'ai essayé au début mais à part des 
opérations simples et sans paramètres je ne m'ensos pas. Exemple le copier 
coller entre deux classeurs s'enregistre (voir code ci-dessous) mais ne 
s'execute même pas. Donc tant pis je continue à chercher et à embéter le monde

sub Main
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(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$G$50:$G$82"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())


end sub

Merci quand même

Claude

From: fabs....@wanadoo.fr
To: prog@fr.openoffice.org
Date: Fri, 13 Nov 2009 14:55:18 +0400
Subject: Re: [prog] Question de méthode


c c a écrit :
Bonjour,
Bonjour,

Je me suis lancée dans la conversion de macros MsOffice en OO et grâce
aux exemples trouvés sur le Net et surtout à cette liste, je progresse
relativement bien.

Mais il doit me manquer une certaine logique car lorsque je cherche dans
l'aide OO je trouve raremment ce que je voudrais. Je m'explique. J'ai eu
quelques soucis avec le "StoresUrl" et Bernard Marcelly m'a gentiment
répondu que "La doc de l'API indique que storeAsURL (et storeToURL) peut
déclencher une erreur d'entrée-sortie com::sun::star::io::IOException.".

Comme j'avais aussi un problème pour comprendre toutes les propriétés que
l'on peut passer au soreasurl comme par exemple les valeurs possibles de
format, d'attribut etc... , j'ai à nouveau cherché "storeasurl" en me
disant que je n'avais pas vu l'indication de l'erreur d'entrée-sortie".
Mais je ne dois pas chercher comme il faudrait car je n'ai pas trouvé.
Je vais peut-être me faire taper sur les doigts, mais personnellement, pour beaucoup d'actions, je préfère souvent le dispatcher (l'enregistreur de macro) à l'API. J'ai moins de problèmes et c'est plus simple, même si on ne connait pas toujours les arguments possibles. Je l'utilise en particulier pour ouvrir un nouveau document, écrire du texte, etc... et je viens de tester avec "enregistrer", et "enregistrer sous", ça marche et ça me donne les codes respectifs suivants (j'ai enlever les remarques):

sub Enregistrer
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
end sub


sub EnregistrerSous
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///home/fabien/test2.odt"
args1(1).Name = "FilterName"
args1(1).Value = "writer8"
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
end sub

Les arguments sont ici faciles à comprendre.
Peut-être à tester?

Fabien.

PS: je ne sais pas pourquoi, quand je clique sur "répondre" sur les messages de "c c" avec mon logiciel de messagerie (Kontact), celui-ci plante. Ce qui n'est pas avec les autres messages. D'où ma réponse à "c c" via François.
Si quelqu'un a une explication...

--
www.gestionnaire-exos.fr



---------------------------------------------------------------------
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

_________________________________________________________________ Tchattez en direct en en vidéo avec vos amis ! http://www.windowslive.fr/messenger/


---------------------------------------------------------------------
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org