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]