prueba

Páginas: 5 (1061 palabras) Publicado: 20 de mayo de 2014
Combinar correspondencia con Word desde Visual FoxPro
Por Luis María Guayán, Tucumán, Argentina

En este ejemplo vamos realizar la tarea de Combinar Correspondencia con Microsoft Word desde Visual FoxPro. Para ello vamos a crear el documento y vamos a utilizar la herramienta "Mail Merge" de Word. Los datos a combinar los tomaremos de la base de datos "Northwind" que viene en los ejemplos deVisual FoxPro 8.
Definición de la clase cWord
Para combinar correspondencia definimos de una clase llamada cWord con los métodos necesarios para esta tarea. El código de la clase es el siguiente:
*--------------------------------------------------
* Clase cWord
*--------------------------------------------------
DEFINE CLASS cWord AS CUSTOM
*--
* Propiedades
*--
oWord = .NULL.&& Objeto Word
cDirApp = ADDBS(SYS(5) + SYS(2003))
cDirDat = ADDBS(HOME(2) + 'Northwind')
cDataSource = ''
*--------------------------------------------------
* Creo el servidor de automatización
*--------------------------------------------------
PROCEDURE CrearServidor()
*-- Creo el objeto
THIS.oWord = CREATEOBJECT('Word.Application')
RETURNVARTYPE(THIS.oWord) = 'O'
ENDPROC
*--------------------------------------------------
* Cierro el servidor de automatización
*--------------------------------------------------
PROCEDURE CerrarServidor()
*-- Cierro Word
THIS.oWord.QUIT()
THIS.oWord = .NULL.
RETURN
ENDPROC
*--------------------------------------------------
* Abro la Carta, si no existe la creo*--------------------------------------------------
PROCEDURE AbrirCarta(tcArchivo)
LOCAL loDoc AS 'Word.Document'
tcArchivo = FORCEEXT(tcArchivo,'DOC')
IF NOT FILE(THIS.cDirApp + tcArchivo)
*-- Si no existe la carta, la creo
loDoc = THIS.CrearCarta(tcArchivo)
ELSE
*-- Si existe la carta, la abro
loDoc = THIS.oWord.Documents.OPEN(THIS.cDirApp +tcArchivo)
*-- y me aseguro que no tiene un documento asociado
loDoc.MailMerge.MainDocumentType = -1 && wdNotAMergeDocument
ENDIF
*-- Retorno un objeto Document
RETURN loDoc
ENDPROC
*--------------------------------------------------
* Creo la Carta
*--------------------------------------------------
PROCEDURE CrearCarta(tcArchivo)
LOCAL loDoc AS'Word.Document'
*-- Creo un nuevo documento
loDoc = THIS.oWord.Documents.ADD(,,0)
*-- Guardo el documento como ...
loDoc.SAVEAS(THIS.cDirApp + tcArchivo)
*-- Activo el documento
loDoc.ACTIVATE
*-- Comienzo a 'escribir' el documento
WITH THIS.oWord.SELECTION
.FONT.NAME = 'Tahoma'
.FONT.SIZE = 10
.ParagraphFormat.ALIGNMENT = 2 &&wdAlignParagraphRight
.TypeText('San Miguel de Tucumán, ' + DTOC(DATE()))
.TypeParagraph
.ParagraphFormat.ALIGNMENT = 0 && wdAlignParagraphLeft
.TypeParagraph
.TypeParagraph
.TypeParagraph
.TypeParagraph
.TypeParagraph
.TypeParagraph
.TypeText('Señores: ')
.FONT.Bold = .T.
.FIELDS.ADD(.RANGE, -1, 'MERGEFIELD CompanyName ').FONT.Bold = .F.
.TypeParagraph
.TypeText('At: ')
.FIELDS.ADD(.RANGE, -1, 'MERGEFIELD ContactName ')
.TypeParagraph
.FIELDS.ADD(.RANGE, -1, 'MERGEFIELD Address ')
.TypeParagraph
.FIELDS.ADD(.RANGE, -1, 'MERGEFIELD PostalCode')
.TypeText(' - ')
.FIELDS.ADD(.RANGE, -1, 'MERGEFIELD City ')
.TypeParagraph
.FONT.Underline =1 && wdUnderlineSingle
.FIELDS.ADD(.RANGE, -1, 'MERGEFIELD Country ')
.FONT.Underline = 0 && wdUnderlineSingle
.TypeParagraph
.TypeParagraph
.TypeParagraph
.TypeParagraph
.TypeText(CHR(9) + 'Estimado/a ')
.FIELDS.ADD(.RANGE, -1, 'MERGEFIELD ContactName ')
.TypeParagraph
.TypeParagraph
.TypeText(CHR(9) + 'Nos...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Prueba
  • Prueba
  • Prueba
  • Prueba
  • Prueba
  • Pruebas
  • Pruebas
  • Prueba

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS