22 de marzo de 2009

Unifica dos archivos en formato MSWORD que estan separados en uno solo

Hace unos días un amigo me pidió que le ayudara con un rutina que ligara dos documentos separados en uno solo realizados en MSWORD. Aquí esta el código.

Todos los comandos utilizados en esta rutina están en la documentación que PortalFox tiene disponible para todos nosotros.

*--Verifica que existan los archivos antes de instanciar WORD
*--------------------------------------------------------------------------
*--Instancia y copia la primera hoja que contiene el texto del .RTF
*--------------------------------------------------------------------------
wFile=FULLPATH("HojaTexto.Rtf")
IF !FILE(wFile)
  =MESSAGEBOX("¡¡Archivo &wFile, no se pudo encontrar!!",16,Titulo)
  RETURN
ENDIF

*----------------------------------------------------------------------
*--Contiene la fotografia y pequeña reseña.
*----------------------------------------------------------------------
gFile=FULLPATH("hoja.Doc")
IF !FILE(gFile)
  =MESSAGEBOX("¡¡Archivo &gFile, no se pudo encontrar!!",16,Titulo)
  RETURN
ENDIF

*------------------------------------------------------------------------
*---ABRE WORD OCULTO PARA COPIAR LOS DATOS Y SE SALE
*------------------------------------------------------------------------
oWord=CREATEOBJECT("Word.Application")
WAIT WIND "Abriendo sesión de MS Word" NOWAIT
WITH oWord
  .Documents.ADD(wFile)  &&Abre el documento .RTF
  .ActiveDocument.SELECT &&Activa la hoja
  cText=.SELECTION.TEXT  &&Selecciona todo el texto
  .SELECTION.COPY        &&Copia todo el texto del documento seleccionado
  .VISIBLE=.F.           &&Abre la primera INSTANCIA de WORD OCULTO del documento .RTF
  .ActiveDocument.CLOSE  &&Cierra el documento .RTF ACTIVO

  .Documents.ADD(gFile)  &&Abre el documento .DOC que contiene las fotos
  .CAPTION="ProtalFox.com......" &&Coloca un titulo al documento

  *--Bajar las filas que desea en el documento abierto
  FOR i=1 TO 100         &&Baja 100 lineas hasta el final del archivo
    oWord.SELECTION.MoveDown
  ENDFOR
  .SELECTION.Paste       &&Pega los datos al final del documento .DOC
  *.Selection.HomeKey     &&Se supone que coloca el cursor en la primera linea
  .VISIBLE=.T.
ENDWITH
WAIT CLEAR
RETURN
*------------------------------------------------------------------------
Tonny Molina

No hay comentarios. :

Publicar un comentario