Mike Gagnon Canada Membre Simple # 0000000025 enregistré le 14/10/2004
Gagnon Mike Pointe Cla H9R 3K8 de la société Carver Technologies Inc. Fiche personnelle
Note des membres 19/20 2 votes
Contributions > 08 - ActiveX - (OLE)
Comment ouvrir un document Word dans un formulaire VFP
# 0000000107
ajouté le 01/12/2004 12:33:45 et modifié le 01/12/2004
consulté 8302 fois
Niveau
initié
Version(s) Foxpro : VFP 7.0
Code source :
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show RETURN DEFINECLASS form1 ASform Top = 0 Left = 0 Height = 245 Width = 440 DoCreate = .T. Caption = "Form1" Name = "Form1" ADD OBJECT command1 AScommandbuttonWITH ; Top = 204, ; Left = 177, ; Height = 25, ; Width = 85, ; Caption = "Demo Word", ; Name = "Command1" ADD OBJECT txtframe AStextboxWITH ; Enabled = .F., ; Height = 116, ; Left = 24, ; ReadOnly = .T., ; TabIndex = 0, ; Top = 36, ; Width = 399, ; Name = "txtFrame" PROCEDURE command1.Click
lcDoc = GETFILE('doc')
oForm = THISFORM IFVartype(oForm.oWordDoc)="O"&& Suggéré par Thierry
oForm.removeObject("oWordDoc") CLEARCLASS oleWordObject && pour lassurer la ré-évaluation de DocumentFile ENDIF
oForm.AddObject('oWordDoc','oleWordObject')
oForm.oWordDoc.Height = THISFORM.txtFrame.height
oForm.oWordDoc.Width = THISFORM.txtFrame.width
oForm.oWordDoc.Top = THISFORM.txtFrame.top
oForm.oWordDoc.Left = THISFORM.txtFrame.left
oForm.oWordDoc.Visible = .t.
oForm.Show
oForm.oWordDoc.DoVerb(0) ENDPROC ENDDEFINE DEFINECLASS oleWordObject asOLEControl OleClass ="Word.Document"&& Server name DocumentFile = lcDoc ENDDEFINE
Commentaires
le 01/12/2004, Thierry a écrit : Petite amélioration pour permettre l'ouverture consécutive de plusieurs documents WORD : IF Vartype(oForm.oWordDoc)="O" oForm.removeObject("oWordDoc") CLEAR CLASS oleWordObject && pour lassurer la ré-évaluation de DocumentFile ENDIF
le 01/12/2004, Mike Gagnon a écrit : Merci Thierry, j'ai modifié le code comme suggéré.
le 12/10/2005, Christophe Chenavier a écrit : Comment peut on ensuite enregistrer le document modifié ?
le 12/10/2005, Mike Gagnon a écrit : Il serait mieux d'utiliser l'automation complete de Word. La technique ci-haut plutot pour visionner un document Word.
Petite amélioration pour permettre l'ouverture consécutive de plusieurs documents WORD :
IF Vartype(oForm.oWordDoc)="O"
oForm.removeObject("oWordDoc")
CLEAR CLASS oleWordObject && pour lassurer la ré-évaluation de DocumentFile
ENDIF