Bonsoir Anne,

Comme promis, la nouvelle version du filtre xslt de fusion peut être
téléchargée ici :
http://ooo.bobiciel.com/filtres_xslt/MaXOOoFusionWriter124.jar
à installer avec la procédure décrite sur le site :
http://www.bobiciel.com/maxopeninfo/default_zone/fr/html/page-35.html

rmq : ces filtres s'appuient sur le format xml d'origine de OOo, mais
fonctionnent sans problème avec OOo 1 et OOo 2.

Je t'ai préparé une maquette pour ta fusion xml. Je n'ai pas eu grand
chose à retoucher dans le modèle que tu as construit. J'ai simplement
modifié le nom des sections texte et du tableau de la façon suivante :

{/ImprRelvFact}
   {Client}
   {Periode}
   {Factures/Facture}

Rmq : La section {/ImprRelvFact} enveloppe toutes les autres sections,
ainsi que le tableau (conformément au schéma du fichier xml source).

Le modèle modifié est ici :
http://ooo.bobiciel.com/filtres_xslt/documents/uti_ImprRelvFact_10_Bob.sxw
Tu peux y intègrer la macro présente dans l'exemple que tu as
téléchargé, ou bien utiliser la procédure en 3 étapes

La source xml avec laquelle j'ai fait le test :
http://ooo.bobiciel.com/filtres_xslt/documents/uti_ImprRelvFact_10.xml

Et le résultat enregistré au format ODF :
http://ooo.bobiciel.com/filtres_xslt/documents/uti_ImprRelvFact_10_resultat_fusion.odt

Le principe de fonctionnement de MaxFusion est le suivant :

1) créer un document modèle sous OOo en y intègrant le paramètrage xpath adéquate

2) enregistrer ce document au travers le filtre "Fusion MaXOpenInfo (writer)" et en écrasant le fichier .../xslt/Fusion MaXOpenInfo
(writer)/FusionXmlToWriter.xsl

En fait, le filtre xslt d'import "FusionXmlToWriter.xsl" qui va servir à la fusion est créé automatiquement. C'est vrai que ça peut sembler tordu, mais ça fonctionne à merveille ;-) en en plus la méthode est on ne peut plus générique.

3) ouvrir le fichier source xml au travers du filtre "Fusion MaXOpenInfo (writer)"

On obtient un document OOo qui est le résultat de la fusion des données xml dans le modèle Writer.

La macro inclue dans le document rend l'opération 2) totalement transparente pour l'utilisateur final. A ce sujet, si un spécialist des applications packagées pouvait me donner un petit coup de main pour finaliser ce travail d'intégration, ce serait sympa. Il est déja bien avancé, mais je bute sur des problèmes qui semblent être des bogues d'OOo. Il faudra que je me penche à nouveau sur le sujet un de ces jours
pour voir si ces problèmes sont règlés avec les nouvelles versions.
Rmq : d'après les commentaires présents dans le fichier xml source, tu
envisages de gèrer la mise en page à la source. Pourquoi ne pas laisser
ce travail à OOo ? Tu peux paramètrer ton tableau de sorte que les
titres de colonnes soient répétés lors d'un changement de page et pour
les totaux, il doit exister une solution automatique.

Si ça t'interesses, tu peux également télécharger des versions du filtre
de fusion qui fonctionnent avec Calc et Draw :
http://ooo.bobiciel.com/filtres_xslt/MaXOOoFusionDraw124.jar
http://ooo.bobiciel.com/filtres_xslt/MaXOOoFusionCalc124.jar

Pour draw, les règles de paramètrage sont identiques à celles décrites
pour Writer :
http://www.bobiciel.com/maxopeninfo/default_zone/fr/html/page-35.html

------------------------------------------------------------------------------------------------------------
Pour Calc, voir l'exemple ci-dessous :

exemple de source xml :

<catalog>
  <cd>
    <title>...</title>
    <artist>...</artist>
     ...
  </cd>
  ...
</catalog>

exemple de paramètrage :

+---+---------+----------+-----------+------------+---------+--------+
|   |    A    |     B    |     C     |      D     |    E    |    F   |
+---+---------+----------+-----------+------------+---------+--------+
| 1 | {/catalog/cd}                                                  |
+---+---------+----------+-----------+------------+---------+--------+
| 2 | {title} | {artist} | {country} | {compagny} | {price} | {year} |
+---+---------+----------+-----------+------------+---------+--------+
| 3 |         |          |           |            |         |        |
+---+---------+----------+-----------+------------+---------+--------+
| 4 | nbre total de CD dans cette liste : {count(//CD)}     |        |
+---+---------+----------+-----------+------------+---------+--------+

La cellule A1 (6 cellules fusionnées) indique le chemin d'accès aux
données (tout chemin xpath est accepté, ont peut donc filtrer avec un
prédicat et créer des requêtes beaucoup plus sofistiquées)
Les cellules A2 à F2, indique le chemin d'accès aux données devant
peupler chacune des colonnes.

Après fusion avec les données xml, la ligne 1 disparait.

Avec notre filtre MaXOOoFusion, on peut placer ce type de paramètrage
n'importe où dans toutes les feuilles du document Calc. Ce paramètrage
peut bien entendu cohabiter avec d'autres données et formules de calcul
classiques.

Il est également possible d'écrire une expression xpath dans une
cellule, comme par ex en A4

Pour Calc, un exemple d'import de librairie iTunes est également
téléchageable ici :
http://sourceforge.net/projects/maxforms/
http://sourceforge.net/project/showfiles.php?group_id=115071

------------------------------------------------------------------------------------------------------------

C'est vrai que le paramètrage est un peu rustique, mais pour l'import de
données xml dans OOo, ça permet de faire (presque) aussi bien qu'avec MS
Office 2007.
Ce qui semble la moindre des choses, vu qu'OOo avait 7 ans d'avance en
adoptant dès sa naissance an l'an 2000 xml comme format pour ses documents.

Bon week end

Bob


Bonne journée
Anne

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

Répondre à