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 mondesub 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 subMerci quand mêmeClaude_________________________________________________________________ Tchattez en direct en en vidéo avec vos amis ! http://www.windowslive.fr/messenger/From: fabs....@wanadoo.fr To: prog@fr.openoffice.org Date: Fri, 13 Nov 2009 14:55:18 +0400 Subject: Re: [prog] Question de méthodec c a écrit :Bonjour,Bonjour,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):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é.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
--------------------------------------------------------------------- To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org