2 messages in org.openoffice.fr.prog[prog] Dernier pas pour la création d...
FromSent OnAttachments
Serge PotteckApr 17, 2006 2:40 pm 
Serge PotteckJun 10, 2006 12:57 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:[prog] Dernier pas pour la création d'une entrée d'index ?Actions...
From:Serge Potteck (serg@cegetel.net)
Date:Apr 17, 2006 2:40:38 pm
List:org.openoffice.fr.prog

Bonjour,

Voulant créer par macro une nouvelle entrée d'index alphabétique, je décris ici mon cheminement de recherche jusqu'au malencontreux blocage.

On peut atteindre la liste des entrées à partir de l'index lui-même, par :

/ ListIndexes.getByIndex(NumIndex).DocumentIndexMarks /

(où NumIndex est le numéro de l'index auquel on s'intéresse dans la liste des indexs du document, le repérage se fait par le test du nom).

DocumentIndexMarks/ /est un tableau dont on peut voir tous les éléments dans Xray. On peut aussi accéder à ces éléments par macro

(avec un petit souci en passant : je ne sais pas lire le nombre d'éléments du tableau. Ni /DocumentIndexMarks.count/ ni /DocumentIndexMarks.GetCount/ ne marche).

Selon le STK, XDocumentIndexMark dérive de XtextContent qui dérive lui-même de Xcomponent, et là il y a une méthode /dispose() /destinée à supprimer un élément. Exemple (suppression de la première entrée de l'index) :

/ListIndexes.getByIndex(NumIndex).DocumentIndexMarks(1).dispose()/

Ca marche, ce qui semble montrer que DocumentIndexMarks est un accès direct à la liste des entrées d'indexs (et pas une reconstitution calculée à la dernière mise à jour de l'index, ce qui était a priori plus plausible).

Mais ça se gâte pour ajouter l'entrée. N'est-ce par la méthode queryInterface du niveau Xinterface qui devait le faire ?

/Dim TheNewIndexEntry as object/ /TheNewIndexEntry=ListIndexes.getByIndex(NumIndex).queryInterface("com.sun.star.text.XDocumentIndexMark")/

Or il me répond au plantage que l'interface demandée est « void ».

Si c'est bien cette méthode qu'il faut utiliser, sans doute me suis-je trompé dans la syntaxe ?

Merci pour toute aide,

Serge