le fait est que je ne comprend pa comment il va pointé ver l'enregistremen que je ve si je lui met la table je veux un renregistrement de ma table et je vai crée le document word pour cet enregistrement!!!
j'ai ce message d'erreur c'est quoi:
Exception class Evariant Invalid OpError 'Invalid variant operation' et je crois que ca concerne la ligne :
encore merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if vBookMarks.Exists('signet'+inttostr(i));
Re;
- Est-ce que tu as créé des signets dans ton document word ?
- Tu peux utiliser un Edit + un bouton, le Edit sert à entrer le matricule de l'employé et le bouton sert à faire une recherche si celle là aboutit alors tu as ton enregistrement et tu n'as qu'à lui passer le code précédent.
Bonne chance.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
justement je crois que c'est dans word que je me trompe comme je n'ai jamais utilisé les signets je dois pas comme il faut
est ce que vous pouvez m'aider???
merci de votre patiente
OK
alors tu fais Insertion --> signets et là tu as une boite de dialogue qui s'ouvre pour que tu fait rentrer le nom du signet. attention le signet va être placer là où tu as mis ton curseur. donc vaut mieux commencer par choisir son emplacement puis tu fais la petite manip. un autre conseil, donne des noms de signets parlant exemple : sg_nom_employe, sg_salaire (sg : signet). comme ça tu n'aura pas de problème pour te souvenir des signets afin de les mettre dans ton code. autre chose, n'hésite pas à jeter un coup d'œil sur l'aide MSWord pour te documenter sur l'utilité des signets.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
c'est ce que j'ai fait tout a lheure mais j'ai tjs le message d'erreur que je vous ai montré tout a lheure !!!
encore merci just_soft!
Peux-tu transmettre le document word et poster le code source pour voir un peu plus claire.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
le code est le suivant :
merci pour votre aide just_soft et dsl de vous déranger autant
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 vMSWord, vWDocument, vWDocuments,vBookMarks,vBookMark, vContent: variant; aFileName : AnsiString; i:integer; begin vMSWord := CreateOleObject('Word.Application'); //demarrage de word vMSWord.Visible := true; aFileName:= extractfilepath(application.ExeName)+'C:\Program Files\Borland\Delphi7\Projects\rapport\fin contrat'; //ouverture du fichier model vWDocuments:= vMSWord.Documents; vWDocument:= vWDocuments.Open(aFileName); { vBookMarks:= vWDocument.BookMarks; //insertion du text dans un signet if vBookMarks.Exists('reference') then begin vBookMark := vBookMarks.Item('reference'); vBookMark.Select; vContent := vBookMark.Range; vContent.InsertAfter(Jvdbgrid1.DataSource.DataSet.FieldByName('ref_dec').Value); } for i:=0 to dec.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(dec.fields[i].Value); end; end; end;
Re;
j'ai eu le même message mais je l'ai contourné de la manière suivante.
bien sûr tu dois adapter tes champs selon ta table. pour test j'ai utilisé la table employe de la DBDEMOS et ça à marcher très bien.
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 procedure ouvre_word; var vMSWord, vWDocument, vWDocuments: Olevariant; aFileName : AnsiString; Signet, Zone : OleVariant; begin vMSWord := CreateOleObject('Word.Application'); //demarrage de word // vMSWord.Visible := true; pas besoin de ça if FileExists('C:\signet.doc') then begin aFileName := 'C:\signet.doc'; //ouverture du fichier model vWDocuments:= vMSWord.Documents; vWDocument:= vWDocuments.Open(aFileName); Signet:='signet1'; Zone:= vMSWord.ActiveDocument.Bookmarks.Item(Signet).Range; Zone.Text := Form1.Table1.FieldByName('LastName').Value; Signet:='signet2'; Zone:= vMSWord.ActiveDocument.Bookmarks.Item(Signet).Range; Zone.Text := Form1.Table1.FieldByName('FirstName').Value; end; end; procedure TForm1.FormActivate(Sender: TObject); begin ouvre_word; end;
Autre chose, tes signets sont sur le même emplacement, donc faudrait les mettre dans le bon endroit à cet effet tu dois les supprimer puis les récréer.
Bonne chance.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
merci bcp just_soft mais ca ne marche pas pourtant j'ai tout fait comme vous me l'avez dit rien maintenant j'ai plus l'erreur mais il ne fait rien mme pa il ouvre mon document!!!
j'en peux plussssssssss
merci de votre patiente sans votre aide je serais o point mort!!
Bonjour lila;
voilà je tu propose une autre idée normalement ça marche très bien
Bon courage et sure tout il ne faut jamais perdre l’espoir.
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 var vMSWord,vWDocuments,vWDocument : variant; aFileName : AnsiString; i:integer; begin vMSWord := CreateOleObject('Word.Application'); //vMSWord.Visible := true; aFileName := 'c:\Doc1.doc'; vWDocuments := vMSWord.Documents; vWDocument := vWDocuments.Open(aFileName); for i:=1 to DBGrid1.FieldCount-1 do begin vMSWord.Selection.TypeText(table1.Fields[i].AsString);// inserer du texte vMSWord.Selection.TypeText(#10); // Retour à Ligne end; end;
bonjour
ça ne marche pas peut etre parceque tu as enlevé
bonne chance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2vMSWord.Visible := true;
le probleme est a ce niveau
extractfilepath(application.exename) nous donne le chemin de l'executable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 aFileName:= extractfilepath(application.ExeName)+'C:\Program Files\Borland\Delphi7\Projects\rapport\fin contrat'; //ouverture du fichier model
ce que tu as fait va te donner un chemin erroné, il ne va pas trouver ton fichier
il fallait mettre ton chemin
bonne chance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 aFileName:= 'C:\Program Files\Borland\Delphi7\Projects\rapport\fin contrat.doc'; //ouverture du fichier model
Dernière modification par Invité1 ; 08/04/2009 à 09h46. Motif: orthographe
Pourtant le code que je t'ai fourni marche très bien avec certitude.
@samy larson : rien à voir avec visible, cette propriété est équivalente à un show donc même si elle vaut False le fichier s'ouvre et les champs se remplissent (tester et approuvé )
pour le chemin je suis tout à fait d'accord c'est pour cela que j'ai mis le fichier word dans la racine 'c:/signet.doc'
@lila23 : pour tester le code que je t'ai fourni tu dois mettre ton fichier dans la racine et le renommer signet.doc mais attention, si tu as MSWord 2007 fais enregistrer sous MSWord 2003 sinon le fichier ne sera pas trouvé et tu aura une belle exception.
en plus et en regardant ton fichier Word je crois que tes signets devront se trouvés là :
Bonne chance.- Vu le contrat à durée déterminée portant recrutement de signet1, en qualité de : Sales Manager.
.
.
.
Article 1. ..... de signet2 , pour abandon de poste.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Bonjour à tous;
just merci pour ta remarquetu es le meilleur , on fait j'ai essayé votre code et ça marche très bien@lila23 : pour tester le code que je t'ai fourni tu dois mettre ton fichier dans la racine et le renommer signet.doc mais attention, si tu as MSWord 2007 fais enregistrer sous MSWord 2003 sinon le fichier ne sera pas trouvé et tu aura une belle exception.
en plus et en regardant ton fichier Word je crois que tes signets devront se trouvés là :
Citation:
- Vu le contrat à durée déterminée portant recrutement de signet1, en qualité de : Sales Manager.
.
.
.
Article 1. ..... de signet2 , pour abandon de poste.
lila c'est tu n'arrive pas à méttre en ouvre la solution de just voilà je tu propose ça:
déplacer dans le fichier word jusqu'à la position ou tu vue insérer
ton texte puis inséré ton texte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for i:= 1 to NbrFoisd do vMSWord.Selection.MoveRight; for i:= 1 to NbrFoisb do vMSWord.Selection.MoveDown;
Code : Sélectionner tout - Visualiser dans une fenêtre à part vMSWord.Selection.TypeText(table1.Fields[i].AsString);voilà un exempleNbrFoisd: c'est le nombre de déplacement à droite
NbrFoisb: c'est le nombre de déplacement en bas
Bon courage
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 var vMSWord,vWDocuments,vWDocument : variant; aFileName : AnsiString; j,k:integer; begin vMSWord := CreateOleObject('Word.Application'); //vMSWord.Visible := true; aFileName := 'c:\Doc1.doc'; vWDocuments := vMSWord.Documents; vWDocument := vWDocuments.Open(aFileName); for j:=1 to 17 do vMSWord.Selection.MoveDown; for k:= 1 to 87 do vMSWord.Selection.MoveRight; vMSWord.Selection.TypeText(table1.Fields[1].AsString);// inserer du texte end;
bonjour à tous,
tout d'abord j'aimerais remercié sam_83 et just_soft pour votre aide c'est trés gentil a vous!!!!
ca ne marche tjs pas!!!peut etre parske j'ai office 2003 et 2007 en meme temps
merci
Salut lila ;
en fait j'ai testé les deux méthodes sur une machine ou il y a word 2003 , 2007 et ça marche .
tu peut nous donné l'erreur pour pouvoir mieux t'aidé
en fait j'ai pas d'erreur j'ai word 2007 qui s'ouvre mais c'est tout je n'ai ni mon document qui s'ouvre ni rien dutout!!!
encore merci
ben je pensais évité les problémes alors je l'ai enregistré sous format 2003 donc .doc !!!
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