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 :

publipostage avec delphi


Sujet :

Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Par défaut publipostage avec delphi
    Bonjour,

    J'utilise word avec mon application Delphi pour envoyer des lettres de confirmation à des clients avec le publipostage.
    les informations sur le client sont stockées dans une base de données.

    Et donc je voudrai savoir si on peu automatiquement remplir le champs "À..."
    à partir de l'adresse mail enregistré en base

    j'utilise delphi 7

    Merci.
    Images attachées Images attachées  

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 041
    Par défaut
    Tu peux utiliser Word par Automation, tu as toutes les méthodes qu'il faut pour invoquer le Publipostage et le remplissage des champs de fusion ...
    Après il faut faire attention à la version de Word, les interfaces changent selon la version
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Par défaut
    Bonjour,

    j'ai toujours ce petit probleme, j'ai testé le code suivant mais sans succès.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       WPadApp.Documents.Open(FichierModele, LectureSeule);
       WPadApp.ActiveDocument.MailMerge.openDataSource(FichierAOuvrir);
       WPadApp.ActiveDocument.MailMerge.Destination := wdSendToNewDocument;
       WPadApp.ActiveDocument.MailMerge.MailAsAttachment := True;
       WPadApp.ActiveDocument.MailMerge.MailSubject := 'Lettre';
       WPadApp.ActiveDocument.MailMerge.MailAddressFieldName := 'xxx@xxx.fr';
       WPadApp.ActiveDocument.MailMerge.SuppressBlankLines := True;
       WPadApp.ActiveDocument.MAilMerge.execute;
    je n'arrive toujours pas à avoir l'adresse mail dans le cadre "À...".

    je me suis aider de la faq : http://delphi.developpez.com/faq/?pa...ordmailingsgbd

    merci d'avance,

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 041
    Par défaut
    il ne faut pas mettre 'xxx@xxx.fr' dans MailAddressFieldName mais le champ de ta base de données qui contient l'adresse du destinataire, si tu as 10000 courriers à envoyer, en général, c'est pour 10000 personnes différentes ... donc la donnée et le destinataire sont tous les deux dans le DataSource
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Par défaut
    OK, merci

    j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WPadApp.ActiveDocument.MailMerge.MailAddressFieldName := 'cli_mail';
    qui est donc un champ dans mon fichier de fusion.

    mais j'ai toujours pas d'adresse mail d'affiché.

    sinon ce sont des lettres personnalisé donc il y a toujours qu'un seul destinataire et donc une ligne dans fichier de fusion.

  6. #6
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    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 400
    Par défaut
    Citation Envoyé par Chayanne47 Voir le message
    OK, merci

    j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WPadApp.ActiveDocument.MailMerge.MailAddressFieldName := 'cli_mail';
    qui est donc un champ dans mon fichier de fusion.

    mais j'ai toujours pas d'adresse mail d'affiché.

    sinon ce sont des lettres personnalisé donc il y a toujours qu'un seul destinataire et donc une ligne dans fichier de fusion.
    es-tu connecté à la base de données ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Par défaut
    Non,
    en fait je créé un fichier de fusion en txt séparateur ";"
    et je l'utilise pour remplir automatiquement ma lettre sous word après

  8. #8
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    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 400
    Par défaut
    Citation Envoyé par Chayanne47 Voir le message
    Non,
    en fait je créé un fichier de fusion en txt séparateur ";"
    et je l'utilise pour remplir automatiquement ma lettre sous word après
    oui même si c'est un fichier texte faut bien te connecter à ta source de données ! comment fais-tu ça en programmation ? car je crois que tu as omis complètement cette partie.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Par défaut
    Citation Envoyé par Just-Soft Voir le message
    oui même si c'est un fichier texte faut bien te connecter à ta source de données ! comment fais-tu ça en programmation ? car je crois que tu as omis complètement cette partie.
    ben en fait je rempli mon fichier txt avec une requête et en suite j'ouvre
    mon fichier word avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WPadApp.Documents.Open(FichierModele, LectureSeule);
    WPadApp.ActiveDocument.MailMerge.openDataSource(FichierAOuvrir);
    le FichierModele étant de fichier .txt et le FichierAOuvrir le fichier .dot

  10. #10
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 041
    Par défaut
    'cli_mail' c'est le nom de ton champ, mais ton fichier csv contient-il l'entête pour indiquer à Excel quel champ utilisé ?
    la fonction OpenHeaderSource permet de définir un header différent de celui contenu dans le fichier, il me semble, j'avais étudié le code d'un collègue sur le Publispostage avec Word97 et Word 2K, ça date un peu !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Par défaut
    de ce coté la tout es bon
    je pense avoir trouvé d'ou viens le probleme

    avant la ligne
    WPadApp.ActiveDocument.MAilMerge.execute;
    c'est le document "FichierModele" qui est ActiveDocument

    donc il faut que ce soit l'autre document "FichierAOuvrir"
    à qui il faut donner les valeurs


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    WPadApp.Documents.Open(FichierModele, LectureSeule);
       WPadApp.ActiveDocument.MailMerge.openDataSource(FichierAOuvrir);
       WPadApp.ActiveDocument.MailMerge.Destination := wdSendToNewDocument;
       WPadApp.ActiveDocument.MAilMerge.execute;
       ActiveWindow.Document.EnvelopeVisible := true;
       WPadApp.ActiveDocument.MailMerge.MailAsAttachment := False;
       WPadApp.ActiveDocument.MailMerge.MailSubject := 'Lettre';
       WPadApp.ActiveDocument.MailMerge.MailAddressFieldName := 'Email';
       WPadApp.ActiveDocument.MailMerge.SuppressBlankLines := True;
    J'ai donc essayé comme ça mais il me dit "l'objet demandé n'est pas disponible"

    j'ai essayé ça aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     ActiveWindow.Document.EnvelopeVisible := true;
       ActiveWindow.Document.MailMerge.MailAsAttachment := False;
       ActiveWindow.Document.MailMerge.MailSubject := 'Lettre';
       ActiveWindow.Document.MailMerge.MailAddressFieldName := 'Email';
       ActiveWindow.Document.MailMerge.SuppressBlankLines := True;
    mais même message

  12. #12
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    regarde ici plein d'exemple

Discussions similaires

  1. Créer un publipostage Word avec Delphi 7
    Par Abdelmadjid dans le forum Débuter
    Réponses: 4
    Dernier message: 23/08/2014, 21h55
  2. [OpenOffice][Texte] Publipostage OpenOffice avec Delphi
    Par k7Delphi dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 20/01/2011, 17h08
  3. Publipostage avec delphi 2009 et word 2003
    Par yannba dans le forum Langage
    Réponses: 0
    Dernier message: 03/04/2010, 12h22
  4. Réponses: 5
    Dernier message: 08/07/2002, 16h22
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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