FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE
Posted: Thu Oct 29, 2015 04:13 PM

Saludos, necesito tener un documento de WORD, llamemosle una plantilla con un escrito predeterminado, tipo contrato, pero que debo usar desde mi aplicacion y al imprimirla ciertos datos seran diferentes dependiendo de los datos del cliente que se le imprima el contrato o documento de word.
Alguna idea, sugerencia, recomendacion y ejemplo de como usar word con plantilla y macros desde FW.? gracias, saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE
Posted: Thu Oct 29, 2015 05:27 PM
José Luis

Guarda tu plantilla en .rtf (Formato texto) si usas MySql guardarlo en texto en un campo TEXT o MEDIUMTEXT
Los lugares que queres cambiar coloca entre corchetes así:

Trabaja en [TRABAJO]

El programa para el llenado:
Code (fw): Select all Collapse
cTrab:="INFORMATICA"

//Luego abrir la plantilla

cTxtFile:=STRTRAN(cTxtFile, "[TRABAJO]",cTrab)


Saludos,

Adhemar
Saludos,



Adhemar C.
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE
Posted: Thu Oct 29, 2015 05:50 PM
acuellar wrote:José Luis

Guarda tu plantilla en .rtf (Formato texto) si usas MySql guardarlo en texto en un campo TEXT o MEDIUMTEXT
Los lugares que queres cambiar coloca entre corchetes así:

Trabaja en [TRABAJO]

El programa para el llenado:
Code (fw): Select all Collapse
cTrab:="INFORMATICA"

//Luego abrir la plantilla

cTxtFile:=STRTRAN(cTxtFile, "[TRABAJO]",cTrab)


Saludos,

Adhemar


Adhemar gracias por responder, mi duda es la siguiente, el documento debe estar accesible al cliente ya que cuando el quiera puede cambiar partes, agregar, modificar o quitar, como por ejemplo una Clausula, en este caso es un contrato, tendras un ejemplo mas completo.? gracias, saludos...
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE
Posted: Thu Oct 29, 2015 05:52 PM

Entonces sólo tiene que guardarlo en .rtf y lo pueden modificar con WORD cuando sea necesario.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE
Posted: Thu Oct 29, 2015 05:59 PM
acuellar wrote:Entonces sólo tiene que guardarlo en .rtf y lo pueden modificar con WORD cuando sea necesario.

Saludos,

Adhemar


Ok, y en mi documento RTF coloco entre corchetes los "campos" que van hacer dinamicos.?, buscare temas de como abrir, usar word y pasarle los valores a la plantilla RTF, gracias, saludos...
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE
Posted: Fri Oct 30, 2015 07:25 AM
Joseluissystruiz, buenos días:

Si utilizas DBF-CDX como yo, puedes hacer uso de la clase TWord. Yo hago así:

El usuario crea sus propios diseño de WORD y los campos a reemplazar tiene que escribirlos mediante "Corchetes". Así de esa manera, la case TWord los identifica y los sustituye por los campos DBF. Así, de un Word de 1 página te imprime un Word de tantas páginas como registros en la DBF tengas.

Un ejemplo
Code (fw): Select all Collapse
    TRY
    oWord:= TWord():New()
    oWord:openDoc(camino+'\modelos\temporal.doc')
    do while .not. eof()
     if clie->seleccion=.t.
      oWord:Replace( '<NOMBRE>' , alltrim(clie->NOMBREc) )    ;    oWord:Replace( '< NOMBRE >' , alltrim(clie->NOMBREc) )
      oWord:Replace( '<DIRECCION>', alltrim(clie->DIRECCc) )     ;    oWord:Replace( '< DIRECCION >', alltrim(clie->DIRECCc) )
      oWord:Replace( '<POBLACION>', alltrim(clie->POBLAC) )     ;    oWord:Replace( '< POBLACION >', alltrim(clie->POBLAC) )
      oWord:printDoc()
      oWord:Replace( alltrim(clie->NOMBREc), '<NOMBRE>' )
      oWord:Replace( alltrim(clie->DIRECCc), '<DIRECCION>' )
      oWord:Replace( alltrim(clie->POBLAC), '<POBLACION>' )
     endif
     skip
    enddo
    oWord:endpage()
    oWord:end(.f.)


Un saludo.
LORENZO.
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE
Posted: Fri Oct 30, 2015 09:22 PM

Lorenzo, muchas gracias por tu ejemplo, es lo que necesitaba, uso MySql pero imagino no deberia ser problema, ya que le mando los nombres de los campos igual como lo haces con DBF, hago las pruebas y te comento, es lo que queria ver, como reemplazar los valores entre los corchetes [], saludos...gracias... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!

Continue the discussion