Bonjour Serge Potteck
Message du 2006-08-07 22:19:
Merci Bernard,

Ca marche (cf. code ci-dessus) sur la base de l'exemple vers lequel tu m'as orienté.

Voici les observations faites au fil de la mise au point :

   * Lorsqu'on passe par PropField le .Name des propriétés de Fields,
     il faut qu'il ce nom soit strictement exact (cf. sortie du
     troisième XRay du code ci-dessous). C'est par exemple
     Bib*i*liographyType, avec un 'i' innatendu entre le second b et le
     l. La casse doit être respectée aussi.

Oui, le .Name des PropertyValue doit être écrit très exactement, et éventuellement en respectant les fautes de frappe du développeur!
Xray le Champ te donne d'ailleurs les noms de ces propriétés.

   * Apparemment, ooo procède de la façon suivante au moment de
     l'insertion du champ (commande  InsertTextContent) : si le nom de
     la propriété passé par le tableau ProField est bon, la valeur sont
     conservés. Sinon, le nom correct est mis en place et la valeur est
     réinitialisée.
   * Constatant cela, j'ai essayé de ne pas faire passer le nom des
     propriétés de Fields par PropField. La valeur passe correctement.
     Mais c'est sans garantie (ne connaissant pas les mécanismes
     sous-jacents je me dis qu'il pourrait y avoir des effets de bord).

Je ne me fierais pas à ce comportement. Mais j'ai observé qu'il n'est pas utile de définir un tableau de PropertyValue à 31 éléments. Il suffit de faire un tableau avec les seules propriétés à initialiser, dans un ordre quelconque. Je présume que la routine de l'API analyse chaque élément et met à jour les propriétés qu'elle reconnaît. Cela marche ainsi dans d'autres cas similaires.
Exemple, avec propriétés en désordre:
Dim PropField(1) as new com.sun.star.beans.PropertyValue
PropField(1).Name="Identifier"
PropField(1).Value="DOC"
PropField(0).Name="BibiliographicType"
PropField(0).Value=com.sun.star.text.BibliographyDataType.ARTICLE


   Bernard

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à