Re: [prog] Insérer une formule de math dans un document writer

2010-05-10 Par sujet Sébastien Deshayes

Le 09/05/2010 22:14, Christophe Devalland a écrit :

Le 7 mai 2010 23:10, Agnès Simonetagnes.simo...@laposte.net  a écrit :

   

Agnès Simonet a écrit :
j'ai trouvé ça qui semble fonctionner :

Sub insererEquation
CurseurVisible = ThisComponent.getCurrentController().getViewCursor()
MonCurseur=CurseurVisible.Text.createTextCursorByRange(CurseurVisible)

Formule=ThisComponent.CreateInstance(com.sun.star.text.TextEmbeddedObject)
Formule.CLSID=078B7ABA-54FC-457F-8551-6147e776a997
Formule.AnchorType=com.sun.star.text.TextContentAnchorType.AS_CHARACTER
ThisComponent.getCurrentController().select(MonCurseur)
MonCurseur.Text.insertTextContent(MonCurseur, Formule, true)
Formule.EmbeddedObject.formula={1}over{2}

End Sub

En espérant que ça aide.
 


bonjour,
effectivement, c'est le genre de code qui insère des objet math dans writer,
aussi bien dans Dmaths que dans mon extension CmathOOo.
Je vous conseille de regarder le code de l'un ou l'autre si vous souhaitez,
en plus, jouer sur la taille des caractères, la police, etc... Le défaut du
code ci-dessus est qu'il insère la formule en utilisant les paramètres
définis dans le module math (police, taille, etc...). Cependant, tout est
paramétrable par le OOoBasic en regardant là :
http://api.openoffice.org/docs/common/ref/com/sun/star/formula/FormulaProperties.html
cordialement,
   

Merci à tous et à toutes pour vos réponses, en ce qui me concerne mon problème 
est désormais résolu.


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



[prog] Copier à partir du presse-papier

2010-05-10 Par sujet PREF31 Open-Office

Bonjour,

Je voudrais coller par macro des informations qui se trouvent dans le 
presse-papier et qui sont sous forme de tableau.
J'ai trouvé dans les différents fils une réponse disant que cela ne peut 
pas se faire par l'API mais comme ce fil en ancien j'aimerais savoir si 
c'est toujours d'actualité.


Ensuite j'ai trouvé dans l'aide qu'avec le dispatcher il existait le 
Pasteformat qui permet (je cite) de pastes the contents of the clipboard 
at the specified position on the sheet, using the specified format.

Où puis-je trouver les paramètres à passer pour définir ce fameux format ?

Merci

Claude

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



[prog] Re: Copier/coller de Calc vers Writer, est-ce possible ?

2010-05-10 Par sujet nimel

Agnès Simonet a écrit :

nimel a écrit :


Bonjour, voici la question du jour,

Avant de me lancer dans la prochaine étape de mon projet, je voudrais 
tout simplement savoir si c'est possible :

- Dans Calc sélectionner une plage de cellules (ça je sais faire)
- La copier dans le presse-papier(la grande inconnu !)
- Créer un nouveau document Writer d'après modèle (j'ai lu ça quelque 
part)
- Y coller cette plage de cellules, au mieux sous forme de tableau 
Calc au pire sous forme de tableau texte (aye aye !)

Enfin bref, l'équivalent di Ctrl+C, aller dans Writer puis Ctrl+Maj+V

J'ai essayé d'avoir une piste avec l'enregistreur de macros mais le 
script s'arrête à la création d'un nouveau document.

Nicole de Bordeaux



Bonsoir,
Encore moi !

Chaque étape que tu décris est réalisable :
* copier dans le presse-papier
Je crois que ce que fait l'enregistreur de macro est la meilleure 
solution :

dim document   as object
dim dispatcher as object
'accéder au document (calc)
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(com.sun.star.frame.DispatchHelper)
'copier dans le presse-papier
dispatcher.executeDispatch(document, .uno:Copy, , 0, Array())

*créer un nouveau document : il te reste à retrouver l'info :-)

* coller le contenu du presse-papier
là aussi on s'inspire de l'enregistreur :
'accéder au document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(com.sun.star.frame.DispatchHelper)
'collage spécial Draw8
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = SelectedFormat
args1(0).Value = 85
dispatcher.executeDispatch(document, .uno:ClipboardFormatItems, , 0, 
args1())


Chaque étape fonctionne mais le problème c'est que le document n'est pas 
le même dans les 2 étapes. Or si tu  groupes les morceaux dans une même 
macro (liée au document calc par exemple)il faudra bien un moyen de lui 
dire que l'étape du collage concerne le document writer.
Et là je ne sais pas faire si ce document vient juste d'être crée. Il 
faudrait qu'il ait été enregistré pour qu'on puisse le désigner via son 
nom.


Voilà. Je ne suis pas sûre que ça aide.
Agnès S.



Bonjour Agnès,
J'ai contourné le pb en utilisant l'enregistreur (qui donne exactement 
ton code) et en séparant les macros, une de départ dans le document Calc 
qui se termine par la création d'un document d'après modèle, et une 
d'arrivée dans le document Writer, qui se déclenche sur l'évènement 
activation du document et qui fait le coller.
Ça marche, sauf que ce satané tableau se colle au début du document et 
non là ou je positionne le curseur d'écriture (avec ton code issu de 
dans la jungle...). Pourquoi tant de haine !



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



Re: [prog] Re: Copier/coller de Calc vers Writer, est-ce possible ?

2010-05-10 Par sujet Laurent Godard

Bonjour

Ça marche, sauf que ce satané tableau se colle au début du document et 
non là ou je positionne le curseur d'écriture (avec ton code issu de 
dans la jungle...). Pourquoi tant de haine !


le paste issu du dispatcher colle à l'endroit du curseur visible (et 
non du curseur d'ecriture)


le curseur visible, qui peut etre deplacé, est le ViewCursor
regarder de ce coté

http://api.openoffice.org/docs/common/ref/com/sun/star/text/XTextViewCursorSupplier.html#getViewCursor
http://api.openoffice.org/docs/common/ref/com/sun/star/text/XTextViewCursor.html
http://api.openoffice.org/docs/common/ref/com/sun/star/text/XTextCursor.html#gotoRange 
(en remarquant qu'un curseur d'ecriture est egalement un TextRange)


en OOoBasic, pour obtenir le viewCursor
vCursor = thisComponent.currentController.viewCursor

si maintenant tu veux positionner ce vCursor au curseur d'ecriture que 
tu as defini auparavent, eCursor

vCursor.gotoRange(eCursor, false)

ensuite tu fais ton paste avec dispatcher

Bon tout ceci ecrit à la va vite, sans aucune verification ;)

HTH

Laurent

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



Re: [prog] verrou de fichier

2010-05-10 Par sujet Kohler Gerard

Jean-Baptiste Faure a écrit :

Bonsoir,

Le 02.05.2010 09:02, Kohler Gerard a écrit :
  

bonjour,

je n'arrive pas à trouver la solution à mon problème (j'ai lu ça
quelque part il y a longtemps et je ne retrouve plus la doc :-( ):

comment faire pour mettre des verrous en écriture sur des fichiers
ouverts par macro ?, j'ai plusieurs secretaires qui peuvent ouvrir des
fichiers calc sur un serveur, et je voudrai que seule la première à
ouvrir le fichier puisse le modifier.



Le système de verrouillage actuel ne le fait pas tout seul ? Quelle
version de OOo utilisez-vous ?

Bonne soirée
JBF

  
j'ai réglé le problème en mettant le fichier contenant les macros 
ouvrant les fichiers calc

sur le serveur au lieu d'avoir des fichiers sur chaque poste.

merci


Gerard

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