Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Southwest Fox Conference
Message
De
04/11/2009 10:25:09
 
 
À
04/11/2009 10:16:46
Information générale
Forum:
Visual FoxPro
Catégorie:
Conférences & événements
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Vista
Database:
Visual FoxPro
Divers
Thread ID:
01419706
Message ID:
01433109
Vues:
152
>hi man,,, i am from guatemala, i am able to speak english and also spanish,,, i have a problem, i need to make a report from visual fox pro 9 to microsoft word... i dont have any idea to do it,,, if you are able to figure the problem please give the solution thanks.

here is one of my programs to do just that:
#INCLUDE word10.h

LPARAMETERS liContactID , llDoPrint , llClose, llShow
IF EMPTY(liContactID)
	liContactID=     97088
ENDIF

SET MEMOWIDTH TO 1024*8

LOCAL lcFlags ,;
	lcTasks  ,;
	lcBio  ,;
	lcPhones ,;
	lnPhotos,;
	lcDossierFileName as Character 

** word:
LOCAL oWordDossier AS WORD.APPLICATION

lcFlags = []
lcTasks = []
lcBio = []
lcPhones = []
lnPhotos = 0

=OpenTablesNeeded()
llOK =GetContactData(liContactID)

IF llOK
	lnNumEmployers = GetEmployerData()
	*** Photos
	DIMENSION laPhotoName [1]
	lnPhotos = GetPhotoData(liContactID ,@laPhotoName )

	*** Phones
	lcPhones = NULL
	lnPhones = GetPhoneData(liContactID ,@lcPhones )

	*** BIOmass
	lcBio = GetBioData(liContactID , llClose)

	*** events
	lcTasks = GetEventData(liContactID )


	*** attributes
	lcFlags = GetAttributeData(liContactID )

	***** ***** ***** ***** ***** ***** *****
	*** NOW CREATE THE DOSIIER DOCUMENT
	***** ***** ***** ***** ***** ***** *****
*!*		TRY 
*!*			oWordDossier=GETOBJECT(,"word.application")	&& get word object
*!*		CATCH
		oWordDossier=CREATEOBJECT("word.application")	&& Create word object

*!*		FINALLY

*!*		ENDTRY


	WITH oWordDossier
		*** Changed: PAC 10/30/09 17:56:43
		*** .VISIBLE= llDoPrint
		.VISIBLE= NOT EMPTY(llShow)
		*** ///
		oDoc= .Documents.ADD()
		lcDossierFileName=[DocDir\Bios\Dossier_]+TRANSFORM(ccContact.CONTACT_ID)+[.doc]
		TRY
			.ActiveDocument.SAVEAS(FULLPATH(lcDossierFileName))

		CATCH
			MESSAGEBOX("This document must be already open, Word cannot save it  ",16,"Word Error",20000)
		FINALLY

		ENDTRY
		UPDATE CONTACTS SET dossier=lcDossierFileName WHERE CONTACT_ID=ccContact.CONTACT_ID
		oRange=oDoc.RANGE()


		IF lnPhotos>0 && NOT EMPTY(lcPhotoName) AND FILE(lcPhotoName)

			.ActiveDocument.TABLES.ADD (.SELECTION.RANGE, 1, 3,.T., .F.)
			WITH .SELECTION.TABLES(1)
				.STYLE = "Table Grid"
				.ApplyStyleHeadingRows = .T.
				.ApplyStyleLastRow = .T.
				.ApplyStyleFirstColumn = .T.
				.ApplyStyleLastColumn = .T.
			ENDWITH
			*
			IF lnPhotos>0
				FOR I2 = 1 TO lnPhotos
					IF FILE(laPhotoName[m.I2])
						TRY 
							oPic=.SELECTION.InlineShapes.AddPicture(laPhotoName[m.I2]	,.F., .T.)
							oPic.scaleHeight=MIN(oPic.scaleHeight,100)
							oPic.scaleWidth=MIN(oPic.scaleWidth,100)
					
						CATCH

						FINALLY

						ENDTRY
						.SELECTION.MoveRight(wdCell)
					ENDIF
				ENDFOR
			ENDIF
		ENDIF

		** CONTACT Name: **************************************************
		.SELECTION.EndKey(wdStory)
		.SELECTION.TypeParagraph
		*.SELECTION.FONT.Bold = wdToggle
		.SELECTION.FONT.SIZE = 14
		IF NOT EMPTY(ccContact.FULLNAME)
			.SELECTION.TypeText(ALLTRIM(ccContact.FULLNAME))
		ENDIF
		*.SELECTION.FONT.Bold = wdToggle
		.SELECTION.FONT.SIZE = 10
		.SELECTION.EndKey(wdStory)
		.SELECTION.TypeParagraph

		IF NOT EMPTY(ccContact.PARENT_ID)
			.SELECTION.FONT.SIZE = 10
			IF NOT EMPTY(ccContact2.COMPANY)
				.SELECTION.TypeText(ccContact2.COMPANY)
				.SELECTION.TypeParagraph
			ENDIF
		ENDIF
		.SELECTION.TypeParagraph

		IF NOT EMPTY(ccContact.HADDRESS)
			.SELECTION.FONT.SIZE = 10
			.SELECTION.FONT.Bold = wdToggle
			.SELECTION.TypeText([------------ Address ------------])
			.SELECTION.FONT.Bold = wdToggle
			.SELECTION.TypeParagraph
			.SELECTION.TypeText(ccContact.HADDRESS)
		ENDIF
		IF NOT EMPTY(ccContact.HCITY)
			.SELECTION.FONT.SIZE = 10
			.SELECTION.TypeParagraph
			.SELECTION.TypeText(ALLTRIM(ccContact.HCITY)+", "+ccContact.HSTATE+" "+ccContact.HZIP)
			.SELECTION.TypeParagraph
		ENDIF

		IF NOT EMPTY(lcPhones)
			.SELECTION.FONT.Bold = wdToggle
			.SELECTION.TypeText([------------ Phones, emails etc. ------------])
			.SELECTION.TypeParagraph
			.SELECTION.FONT.Bold = wdToggle
			.SELECTION.FONT.SIZE = 10
			.SELECTION.TypeText(lcPhones)
			.SELECTION.TypeParagraph
		ENDIF

		IF NOT EMPTY(lcTasks)
			.SELECTION.FONT.Bold = wdToggle
			.SELECTION.TypeText([------------ Events Attended -----------])
			.SELECTION.FONT.Bold = wdToggle
			.SELECTION.TypeParagraph
			.SELECTION.FONT.SIZE = 10
			.SELECTION.TypeText(lcTasks)
			.SELECTION.TypeParagraph
		ENDIF
		IF NOT EMPTY(lcFlags )
			.SELECTION.FONT.Bold = wdToggle
			.SELECTION.TypeText([------------ Attributes -----------])
			.SELECTION.FONT.Bold = wdToggle
			.SELECTION.TypeParagraph
			.SELECTION.TypeText(lcFlags )
			.SELECTION.TypeParagraph

		ENDIF
		IF NOT EMPTY(ccContact.NOTES )
			.SELECTION.FONT.Bold = wdToggle
			.SELECTION.TypeText([------------ Notes -----------])
			.SELECTION.FONT.Bold = wdToggle
			.SELECTION.TypeParagraph
			.SELECTION.TypeText(ccContact.NOTES)
			.SELECTION.TypeParagraph

		ENDIF
		IF NOT EMPTY(lcBio)
			.SELECTION.TypeText([------------ Biography -----------])
		    .Selection.InsertBreak(wdPageBreak)

*!*				.SELECTION.FONT.Bold = wdToggle
*!*				.SELECTION.FONT.Bold = wdToggle
*!*				.SELECTION.TypeParagraph
*!*				.SELECTION.TypeText(lcBio)
			.SELECTION.InsertFile(lcBio,"",.f.,.f.,.f.)
			.SELECTION.TypeParagraph
		ENDIF

		TRY
			.ActiveDocument.SAVE()
			IF NOT EMPTY(llClose)
				.ActiveDocument.CLOSE()
				.quit()
			ENDIF
		CATCH
			*** Changed: PAC 10/30/09 17:58:41
			*** ///
		FINALLY
			oWordDossier = .NULL.

		ENDTRY

	ENDWITH

ENDIF
*** Changed: PAC 10/30/09 17:58:36
IF NOT EMPTY(llClose)
	RETURN (lcDossierFileName)
ENDIF
*** ///
Peter Cortiel
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform