IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Delphi 7 + Word 2003 + XML


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 54
    Par défaut Delphi 7 + Word 2003 + XML
    bonjour a tous.

    savez vous si il y a un moyen d'utiliser les fonctionnalités XML de word 2003 a partir de delphi 7 ?

    j'aurais aimer pouvoir remplir des zones de champs crées a partir d'un schema XML dans un modele word, malheureusement mon pauvre delphi 7 n'a pas l'air d'aimer les appels au fonctionnalités XML en creant un objet OLE (wordl.application) et wordxp.pas ne prend en charge que word9 (word 2003 -> word11)

    tout ça pour eviter d'avoir a utiliser les signets, car le modele doit etre modifiable par l'utilisateur et c'est trop peu sur (les signets) etant donné que le fait de changer le texte d'un signet le fait sauter.

    les champs de fusions me semblent pas non plus approprié.

    si toutefois vous avez une solution ou des idées qui pourrais m'aider...

    merci d'avance
    Elrick

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 54
    Par défaut solution
    bon, ne pouvant pas utiliser le xml avec la version que j'ai des outils de dév que j'utilise, j'ai opté pour la solution suivante, que je vais decrire ici, comme ça si ça peut aider quelqu'un d'autre ...

    j'ai mis en place des balises (un peu comme des balises html) que l'utilisateur peut utiliser quand il cree son modele de document
    ex:
    ensuite j'ai creer une hierarchie de classes pour permettre le rendu des informations soit en texte simple, soit en multiligne, soit en tableau selon le principe suivant:

    elementbase classe virtuelle avec methode render
    contient entre autre le nom de la balise a remplacer
    un 'pointeur' vers le document word utiliser
    plus des ptites options de base

    textesimple = class(elementdebase)
    memo = class(elementdebase)
    tableau= class(elementdebase)
    etc etc etc (on peut aussi inserer des elements de formulaires, pour ma part je n'ai implémenté que le checkbox, parfois utile dans mon cas)


    la methode render surchargée indiquant comment ecrire les données a la place de la balise, sa structure se presentant ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    verifier si le 'pointer' de doc est valide
    rechercher dans le document toutes les occurences de '<%'+nom_balise+'%>' 
    remplacer ces occurences par les données
    bien sur il y a des subtilités selon qu'on remplace par du texte ou par un tableau
    cette methode fait appel au fonctions fournit par les classes _Application et _Document et un usage intense des range (uses WordXP)


    ensuite la colonne vertebrale de mon systeme:
    la classe generateurword qui comporte un conteneur pour mes objets elementdebase (et descendants)

    qui s'occupe de prendre le document de base et d'executer a l'appel de sa methode render, les methodes render de tout les elements qu'elle contient.

    et d'enregistrer ce document modifié.

    ça marche plutot bien, meme si c'est plutot basique pour l'instant

    l'utilisation de ces classes se faisant comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    var
    gdoc : generateurdoc;
    elText : textesimple;
    elTableau : tableau;
    begin
    ...
    //si on l'utilisateur a choisit un modele .dot 
    //instancier gdoc
    //recuperer les données
    ...
    eltext := textesimple.create('mabalisetexte');
    eltext.text := données.valeur;
    gdoc.add(eltext);
    ...
    eltableau := tableau.create('mabalisetableau');
    eltableau.headers.add('mon entete de colonne 1'); //headers est un Tstringlist
    //on repete l'operation pour tte les colonnes ou sinon on utilise la methode addstrings (si mes souvenirs sont bons)
    eltableau.values.add(mavaleur1) // idem un TStringlist;
    //idem on repete pour tte les valeurs
    ...
    gdoc.add(eltableau);
    ...
    gdoc.render;
    gdoc.savetofile(nomdufichier de sortie);
    end;
    voila
    note pour les tableaux:
    j'ai utiliser une methode simple pour gerer le nombre variable de colonnes et ne stoquer les valeurs que dans un seul tstringlist, cette methode bien connue des demomakers est l'adressage d'une cellule en (X,Y) mais dans un tableau a une seule ligne qu'on effectue par:
    cellule[Y*nombredecolonnes+X].valeur
    seul probleme pour l'instant (a mon niveau) c'est que si vous ne remplissez pas l'integralité des colonnes pour une seule ligne, (meme avec des lignes vides) vous creez inevitablement un decalage ds la lecture et donc le rendu du tableau dans le document.

    chose qu'on peut facilement eviter avec une boucle du style:
    boucle
    tableau.valeurs.add(valeurcol1)
    tableau.valeurs.add(valeurcol2)
    tableau.valeurs.add(valeurcol3)
    tableau.valeurs.add(valeurcol4)
    tableau.valeurs.add(valeurcol5)
    tableau.valeurs.add(...)
    finboucle
    et on passe a la ligne suivante
    a vous de mettre autant de add ds une boucle pour remplir toute les colonnes

    bon je pense que j'en ai finit avec mon explication je vais donc cloturer ce thread

    a+
    Elrick

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut Re: Delphi 7 + Word 2003 + XML
    Salut,
    Citation Envoyé par sfxElrick
    savez vous si il y a un moyen d'utiliser les fonctionnalités XML de word 2003 a partir de delphi 7 ?

    ...malheureusement mon pauvre delphi 7 n'a pas l'air d'aimer les appels au fonctionnalités XML en creant un objet OLE (wordl.application) et wordxp.pas ne prend en charge que word9 (word 2003 -> word11)
    As-tu importer la librairie de type de Word 2003 ?
    Comme la gestion du XML est une avancé majeur sous Word autant en profiter et simplifier la maintenance de ton application.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 54
    Par défaut question bete
    je fait comment ? :p

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Dans le menu Projet sélectionner Importer une bibliothèque de type ….Cliquer sur Ajouter puis sélectionner le fichier C:\FullPath\FileName.tlb.
    Puis sur Installer.
    Dans ton cas il faut rechercher dans le répertoire d'installation de MS Office.
    Et dans la faq tu trouveras des indications concernant le nom de fichier de l'aide des Objets COM d'Office.
    Peux tu nous communiquer le nom et le chemin de ces fichiers afinb de mettre à jour la FAQ ?
    Merci

  6. #6
    Invité de passage
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Dans ton cas il faut rechercher dans le répertoire d'installation de MS Office.
    Et dans la faq tu trouveras des indications concernant le nom de fichier de l'aide des Objets COM d'Office.
    Peux tu nous communiquer le nom et le chemin de ces fichiers afinb de mettre à jour la FAQ ?
    Merci

    bonjour, je voudrais importer la librairie word, je possède delphi 2005 personal mais dans le menu "composant", il n'y a pas " Ajouter une bibliothèque de type"
    ni dans le menu "projet" d'ailleurs. Comment puis je faire pour importer cette librairie? suis je brider par la version de delphi? y a t'il un autre moyen d'importer cette librairie?

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Cette opération n'est malheureusement pas possible sous D2005 EP.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 54
    Par défaut ha oui
    effectivement j'connaissais pas j'essayerais demain au taf
    merci de l'astuce

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 54
    Par défaut liste de fichiers tlb
    voila un ptit c:\dir /s *.tlb > listing.txt me donne ceci: (j'ai viré tt ce qui me semblait pas en rapport avec office)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    C:\Program Files\Fichiers communs\Microsoft Shared\DAO\Dao2535.tlb
    C:\Program Files\Fichiers communs\Microsoft Shared\MSENV\VSHELP.TLB
    C:\Program Files\Fichiers communs\Microsoft Shared\Smart Tag\MSTAG.TLB
    C:\Program Files\Fichiers communs\Microsoft Shared\VS7DEBUG\COLOADER.TLB
    C:\Program Files\Microsoft Office\OFFICE11\MSPUB.TLB
    C:\Program Files\Microsoft Office\OFFICE11\VS Runtime\SCHEMAS\HTML\HTM32DOM.TLB
    C:\Program Files\Microsoft Office\OFFICE11\VS Runtime\SCHEMAS\HTML\HTM40DOM.TLB
    C:\Program Files\Microsoft Office\OFFICE11\VS Runtime\SCHEMAS\HTML\NSC40DOM.TLB
    vois si ça t'aide pour la maj de la FAQ

    sinon ds
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\Microsoft Office\OFFICE11\
    se trouvent des fichiers .olb (object library je pense) pour chaque appli office (access, powerpoint, word, excel, etc ...)

    j'ai fait un import du msword.olb

    par contre ya un ptit prob a la compil
    (en dehors du fait qu'il faut renommer toute les classes importées parce qu'elles existent deja par l'import du word2000)
    pour info j'ai renommer les TWordXXXX en TWord11XXXX histoire de pas se planter

  10. #10
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut Re: liste de fichiers tlb
    Citation Envoyé par sfxElrick
    par contre ya un ptit prob a la compil
    (en dehors du fait qu'il faut renommer toute les classes importées parce qu'elles existent deja par l'import du word2000)
    pour info j'ai renommer les TWordXXXX en TWord11XXXX histoire de pas se planter
    Le mieux aurait été de décharger le paquet d'Office 2000 je pense. Cela t'aurais éviter cette manipulation mais aussi facilité le portage pour d'autres versions d'Office.

    Citation Envoyé par sfxElrick
    vois si ça t'aide pour la maj de la FAQ
    Avec cette info oui, peux-tu vérifier si ces fichiers existent :
    C:\Program Files\Microsoft Office\Office\1036\VBAWRD11.CHM
    C:\Program Files\Microsoft Office\Office\1036\VBAXL11.CHM

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 54
    Par défaut
    Le mieux aurait été de décharger le paquet d'Office 2000 je pense. Cela t'aurais éviter cette manipulation mais aussi facilité le portage pour d'autres versions d'Office.
    hmm oui enfin j'ai fait la manip a l'arrache vu que ma soluce intermediaire fonctionne et que j'ai d'autre choses plus urgentes a finir ça reste en l'etat pour l'instant

    Avec cette info oui, peux-tu vérifier si ces fichiers existent :
    Citation:
    C:\Program Files\Microsoft Office\Office\1036\VBAWRD11.CHM
    C:\Program Files\Microsoft Office\Office\1036\VBAXL11.CHM
    j'te dirais ça lundi ! :p

    par contre ya un moyen de voir les elements mis a jours ds la faq (pour pas se la retaper en entiere a chaque fois) ?

  12. #12
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sfxElrick
    par contre ya un moyen de voir les elements mis a jours ds la faq (pour pas se la retaper en entiere a chaque fois) ?
    Oui, il y a un 'tag' Nouveau clignotant mais je ne sais pas combien de temps il reste actif.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 54
    Par défaut hmmm
    mouhais me semblait avoir deja vu un truc du style, mais la j'ai bo repasser la faq delphi j'trouve aps les modifs (a moin que tu ne les ai pas encore faites)

  14. #14
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut Re: hmmm
    Citation Envoyé par sfxElrick
    mouhais me semblait avoir deja vu un truc du style, mais la j'ai bo repasser la faq delphi j'trouve aps les modifs (a moin que tu ne les ai pas encore faites)
    Bah oui, tu vas plus vite que la musique !
    Une fois les noms de fichiers d'aide communiqué je demanderais la MAJ de la FAQ . Je pense être réactif mais pas 'à réaction'

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 54
    Par défaut vrouuuuuuuuuuuuuummmmmmmmmm
    okok pas de soucis, bah j'te dirais lundi matin pour les fichiers mais mise d'entrée sur un ...\office11\... o lieu d'un ...\office\...

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 54
    Par défaut liste des .chm
    voila comme convenu les infos que tu voulais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    C:\Program Files\Microsoft Office\OFFICE11\SMSW.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\ACMAIN11.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\CSDEBUG.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\CSENVIR.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\GRAPH10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\HTMLREF.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\JSCRIPT5.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\MCE.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\MSE10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\MSOHLP11.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\MSPHELP.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\MSQRY32.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\MSTORE10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\OFMAIN11.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\OISMAIN.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\OLFM10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\OLMAIN11.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\OWSHLP10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\PBMAIN10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\PPMAIN10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\PSS10O.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\PSS10R.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\RPLBRF35.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\SETUP.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\STSLIST.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\VBAAC10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\VBAGR10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\VBAOF11.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\VBAOL11.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\VBAOWS10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\VBAPB10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\VBAPP10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\VBAWD10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\VBAXL10.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\VBSCRIP5.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\WDMAIN11.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\XLADDIN.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\XLMACRO.CHM
    C:\Program Files\Microsoft Office\OFFICE11\1036\XLMAIN11.CHM
    par contre il est possible que certains fichiers n'y soient pas vu que je n'ai pas fait d'installation complete

    cordialement
    Elrick

  17. #17
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut



+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Publipostage avec delphi 2009 et word 2003
    Par yannba dans le forum Langage
    Réponses: 0
    Dernier message: 03/04/2010, 12h22
  2. word 2003 - xml
    Par fx007 dans le forum Word
    Réponses: 2
    Dernier message: 16/05/2008, 11h36
  3. Retour à la ligne dans Balise XML ? Word 2003
    Par zeus.isback dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 13/03/2008, 12h03
  4. Pilotage de Word 2003
    Par dragonspyro93 dans le forum WinDev
    Réponses: 1
    Dernier message: 22/11/2004, 10h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo