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 et word


Sujet :

Delphi

  1. #1
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut delphi et word
    bonjour à tous ,

    voila j'ai un modéle d'un document en word j'aimerais savoir si en delphi 7 je peux le remplir avec un enregistrement qui provient de ma BD Sql et l'ouvrir pour mettre des modifications si nécéssaire!!!!

    merci a tous!!!!

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Je ne connais pas l'utilisation de Word avec Delphi (en fait, ça m'intéresse mais je n'ai pas le temps de m'y consacrer )

    Bon, pour commencer, je suppose que tu as déjà regarder un peu ce lien ?

    A+ et bon courage

  3. #3
    Invité1
    Invité(e)
    Par défaut fusion et publipostage
    bonjour

    je sais que tu peux faire cela avec word sans passer par delphi

    en utilisant l'outil "fusion et publipostage" il te donne l'accés directe a ta base

    de données

    bonne chance

  4. #4
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    merci a vous pour ce lien mais je n'arrive pas a remplir un document word deja enregistré !!!

  5. #5
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    oui je connais le publipostage mais est ce que je peux de mon application delphi ouvrir le document word qui est connecté a ma base de données !!!

    merci

  6. #6
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    +1 samy larson

    Tout à fait d'accord, si tu n'as qu'à imprimer ton modèle depuis ta base de données pourquoi vouloir passer par Delphi. Autant utiliser les capacités de word. jette un œil par là : http://www.developpez.net/forums/sea...archid=4409676

    Bonne chance.

  7. #7
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    bonjour just_stuff ,

    hélas je suis obligé de passer par delphi d'ouvrir le modéle que j'ai et de remplir les champs d'aprés l'enregistrement que j'ai dans ma BD
    merci

  8. #8
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Re;

    1. ce n'est pas just_stuff mais c'est Just-Soft
    2. dis nous ce qui ne va pas avec ça : http://lfe.developpez.com/PasWord/
    autrement dit as-tu déjà commencer ? le blocage il est à quel niveau ?

    Bonne chance.

  9. #9
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    oops pardo just_soft!!!
    il n' ya pas de probléme avec ce tutoriel sauf que je ne sais pas si adapté a mon besoin ou pas moi je pensais faire comme pour l'excel exporté mé donné de ma table vers le word mais sur un modéle de coument word deja existant et remplir quelque champ dans ce document

    juska la je n'ai put qu'ouvrir mon document mais je ne sais pas si je peux le remplir a des endroits bien précis !!!
    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
     
    var vMSword : variant ;
    i,j:integer;
    var
         vWDocument, vWDocuments : variant;
     var
        aFileName : AnsiString;
    begin
    //JvDBGridWordExport1.ExportGrid;
    // demarrer excel
    vMSword:= CreateOleObject('Word.Application');
    vMSword.Visible := true;					
    begin
        aFileName := 'C:\Program Files\Borland\Delphi7\Projects\Rapport\Decision fin contrat.docx';
        vWDocuments := vMSWord.Documents;
        vWDocument := vWDocuments.Open(aFileName);
    end;
    la suite je ne sais meme pas si cest possible de le faire

    encore merci

  10. #10
    Invité1
    Invité(e)
    Par défaut
    voici un code , je me suis inspiré de tuto foutnit par Just-Soft

    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
     
    procedure word   ;
    var
    vMSWord, vWDocument, vWDocuments,vBookMarks, vBookMark, vContent   : variant;
    aFileName : AnsiString;
     
    begin
        vMSWord := CreateOleObject('Word.Application');  //demarrage de word
        vMSWord.Visible := true;
     
        aFileName := extractfilepath(application.ExeName)+'n.doc';   //ouverture du fichier model
        vWDocuments := vMSWord.Documents;
        vWDocument := vWDocuments.Open(aFileName);
     
        vBookMarks := vWDocument.BookMarks;             //insertion du text dans un signet
        if vBookMarks.Exists('signet1') then begin
            vBookMark := vBookMarks.Item('signet1');
            vBookMark.Select;
            vContent := vBookMark.Range;
            vContent.InsertAfter('texte à insérer');
    end;
    end;
    tu dois d'abord dans ton document word inserer des signets a l'endroit ou tu veux inseret ton texte

    bonne chance

  11. #11
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Le bout de code que tu as présenté ne fait que charger Word et ouvrir un document existant.

    Pour ton souci tu peux commencer par créer le modèle dans MSWord, tu insère à l'intérieur des signets (genre de repère) puis par le biais de la programmation tu indique quel signet reçoit quel champ, c'est comme une affectation de type valeur_signet := valeur_champ.

    Je te dis ça puisque je suis persuadé que c'est possible mais je ne l'ai jamais essayer, à toi l'honneur donc de l'explorer.

    Bonne chance.

  12. #12
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    voilà ce que je disais encore un +1 pour notre ami samy larson et

  13. #13
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut merci sam
    c'est ce que j'essayais de faire en lisant le tuto mais comme je n'ai jamais utiliser les signet sur word je ne savais pa bien m'y prendre

    je vais tester et je vous rend la réponse

    merci bcp

  14. #14
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    c'est surtout quand regardant le code je ne comprend pas comment je récupére les données de ma BD champ apré champ!!!

    merci

  15. #15
    Invité1
    Invité(e)
    Par défaut
    salut
    pour recuperer les données de ta table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vContent.InsertAfter(table1.fields[0].Value);
    bonne chance

  16. #16
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Citation Envoyé par samy larson Voir le message
    salut
    pour recuperer les données de ta table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vContent.InsertAfter(table1.fields[0].Value);
    bonne chance
    je préfère FieldByName c'est plus explicite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vContent.InsertAfter(Table1.FieldByName('tonChamp').Value);

  17. #17
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    alors je peux faier une boucle sur les colonnes du dbgrid et dans le word mettre le nom des signets exwcatement le meme que le nom des champs ensuite les remplir!!!!
    merci

  18. #18
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Citation Envoyé par lila23 Voir le message
    alors je peux faier une boucle sur les colonnes du dbgrid et dans le word mettre le nom des signets exwcatement le meme que le nom des champs ensuite les remplir!!!!
    merci
    Faut toujours penser ensemble de données et pas composants d'affichage donc la boucle si tu dois la mettre c'est pour parcourir tout les enregistrements de la table pas du DBGrid.

  19. #19
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    mon document word doit s'ouvrir et se faire pour une personne (un employé) et je peux pas savoir le kel a moins que je fasse sur le onexit du matricule de l'employé un traitement pr avoir le mouvment exacte pour cet employé non????

    merci

  20. #20
    Invité1
    Invité(e)
    Par défaut
    oui tu peux utiliser FieldByName

    moi j'ai utilisé "fields[0]" dans le cas ou tu utilises une boucle comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    for i:=0 to table1.FieldCount-1 do
     
      begin
          if vBookMarks.Exists('signet'+inttostr(i)) then 
          begin
            vBookMark := vBookMarks.Item('signet'+inttostr(i));
            vBookMark.Select;
            vContent := vBookMark.Range;
            vContent.InsertAfter(table1.fields[i].Value);
          end;
     
       end;
    bonne chance

Discussions similaires

  1. Memo Delphi et Word
    Par fouad_algo dans le forum Débuter
    Réponses: 3
    Dernier message: 28/06/2011, 19h15
  2. delphi sous word
    Par hicmanify dans le forum Bases de données
    Réponses: 1
    Dernier message: 27/04/2011, 11h34
  3. Delphi et Word
    Par maxinformatique dans le forum Langage
    Réponses: 2
    Dernier message: 03/03/2008, 15h24
  4. Lancer du vb de delphi dans word
    Par dederfred dans le forum Delphi
    Réponses: 1
    Dernier message: 23/11/2006, 18h00
  5. Delphi 7 + Word 2003 + XML
    Par sfxElrick dans le forum Delphi
    Réponses: 16
    Dernier message: 23/06/2006, 14h08

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