Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Merging Different Documents in Word
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Divers
Thread ID:
01101747
Message ID:
01102731
Vues:
15
Thanks much Arthur, I'll give it a try!

>If you have the data in Fox, there is an example I used to create Word docs from a 'base' or template file.
>
>You could modify this to open multiple template files according to the value in a field in the table.
>
>
>* I called this file 'wrtest.prg'
>* modified only slightly from the example at
>* http://www.foxite.com/articles/create_a_report_in_the_microsoft_word_format_008.htm
>*
>LOCAL lcTemplate, lcReport                                         && To set the file of the template
>lcTemplate='C:\DOCUME~1\ARGRANT\MYDOCU~1\VISUAL~1\EmplTamp1.doc'   && file 'template'
>* for this example the word doc must exist - should look like this in Word:
>*
>*Employees List
>*
>*<date()>
>*<GetEmployeeList()>
>*
>*<gcFoot>
>
>lcReport='C:\DOCUME~1\ARGRANT\MYDOCU~1\VISUAL~1\EmployeeList.doc'  && output filename
>PUBLIC gcFoot
>gcFoot='This list includes the employees, '+;
>   'which help the customers to cope with their problems.'+;
>   CHR(13)+CHR(13)+;
>   'Joe Bagofdonuts,'+CHR(13)+;
>   'Personnel Manager'
>LOCAL loReport
>loReport=CREATEOBJECT('WordReport', lcTemplate, lcReport)
>loReport.SHOW()
>loReport.CREATE()
>loReport.PRINT()
>loReport.HIDE()
>DO WHILE MESSAGEBOX('Print is complete?',;
>      4+32+256,;
>      'WordReport Class')=7
>ENDDO
>RETURN
>
>*-----------------------------------------------------------
>FUNCTION GetEmployeeList()
>*-----------------------------------------------------------
>   IF !USED('EMPLLIST')
>      CREATE CURSOR 'empllist' (FIRST_NAME c(18),LAST_NAME c(18), TITLE c(18))
>      INSERT INTO   'empllist' (FIRST_NAME, LAST_NAME, TITLE) VALUES  ('James', 'Kirk', 'Captain')
>      INSERT INTO   'empllist' (FIRST_NAME, LAST_NAME, TITLE) VALUES  ('Montgomery', 'Scott', 'Engineer')
>   ENDIF
>   SELE 'empllist'
>   LOCAL lcList
>   lcList=''
>   SCAN
>      lcList= lcList+;
>         PADR(ALLT(empllist.FIRST_NAME)+' '+;
>         ALLT(empllist.LAST_NAME),30,' ')+;
>         ' - '+empllist.TITLE+;
>         CHR(13)
>   ENDS
>   lcList=SUBSTR(lcList,1,LEN(lcList)-1)
>   USE IN EMPLLIST
>   RETURN lcList
>ENDFUNC
>
>************************************************************
>DEFINE CLASS WordReport AS CUSTOM
>************************************************************
>   NAME = "WordReport"
>   TemplateFile = ''
>   ReportFile = ''
>   PROTECTED WordApplication
>   PROTECTED WordDocument
>   REFERENCE = .F.
>   PROCEDURE CREATE
>      LOCAL loApp, loDoc
>      loApp=THIS.WordApplication
>      loDoc=THIS.WordDocument
>      loDoc.SAVEAS(THIS.ReportFile)
>      LOCAL lcFoundText, lcCommand
>      loApp.SELECTION.FIND.Execute('\<*\>',,,.T.,,,.T.,1)
>      lcFoundText=loApp.SELECTION.TEXT
>      DO WHILE SUBSTR(lcFoundText,1,1)='<' AND ;
>            SUBSTR(lcFoundText,LEN(lcFoundText),1)='>' lcCommand=loApp.SELECTION.TEXT lcCommand=SUBSTR(lcCommand,1,LEN(lcCommand)-1) lcCommand=SUBSTR(lcCommand,2) loApp.SELECTION.TEXT=EVALUATE(lcCommand) loApp.SELECTION.FIND.Execute('\><*\>',,,.T.,,,.T.,1)
>         lcFoundText=loApp.SELECTION.TEXT
>      ENDDO
>      loDoc.SAVE()
>   ENDPROC
>   PROCEDURE SHOW
>      LPARAMETERS nStyle
>      LOCAL loApp
>      loApp=THIS.WordApplication
>      loApp.VISIBLE=.T.
>   ENDPROC
>   PROCEDURE HIDE
>      LOCAL loApp
>      loApp=THIS.WordApplication
>      loApp.VISIBLE=.F.
>   ENDPROC
>   PROCEDURE PRINT
>      LPARAMETERS cText
>      LOCAL loApp
>      loApp=THIS.WordApplication
>      IF loApp.VISIBLE
>         loApp.Dialogs(88).SHOW()
>      ELSE
>         THIS.SHOW()
>         loApp.Dialogs(88).SHOW()
>         THIS.HIDE()
>      ENDIF
>   ENDPROC
>   PROCEDURE reference_access
>      RETURN THIS.WordApplication
>   ENDPROC
>   PROCEDURE reference_assign
>      LPARAMETERS vNewVal
>   ENDPROC
>   PROCEDURE INIT
>      LPARAMETERS lcTempaleName, lcReportName
>      THIS.TemplateFile=lcTempaleName
>      THIS.ReportFile=lcReportName
>      THIS.WordApplication=CREATEOBJECT('Word.Application')
>      LOCAL loApp
>      loApp=THIS.WordApplication
>      THIS.WordDocument=loApp.Documents.OPEN(THIS.TemplateFile)
>   ENDPROC
>   PROCEDURE DESTROY
>      LOCAL loApp
>      loApp=THIS.WordApplication
>      loApp.QUIT()
>   ENDPROC
>ENDDEFINE
>
Luis Guzman, MCP
"The only glory most of us have to hope for
is the glory of being normal." Katherine Fulleton Gerould
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform