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!!!!
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!!!!
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
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
merci a vous pour ce lien mais je n'arrive pas a remplir un document word deja enregistré !!!
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
+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.
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
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.
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 !!!
la suite je ne sais meme pas si cest possible de le faire
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;
encore merci
voici un code , je me suis inspiré de tuto foutnit par Just-Soft
tu dois d'abord dans ton document word inserer des signets a l'endroit ou tu veux inseret ton texte
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;
bonne chance
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.
voilà ce que je disais encore un +1 pour notre ami samy larson et
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
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
salut
pour recuperer les données de ta table
bonne chance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 vContent.InsertAfter(table1.fields[0].Value);
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);
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
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
oui tu peux utiliser FieldByName
moi j'ai utilisé "fields[0]" dans le cas ou tu utilises une boucle comme cela
bonne chance
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;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager