Page 1 of 1

ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE

Posted: Thu Oct 29, 2015 4:13 pm
by joseluisysturiz
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:

Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE

Posted: Thu Oct 29, 2015 5:27 pm
by acuellar
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: Select all | Expand


cTrab:="INFORMATICA"

//Luego abrir la plantilla

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

 


Saludos,

Adhemar

Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE

Posted: Thu Oct 29, 2015 5:50 pm
by joseluisysturiz
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: Select all | Expand


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...

Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE

Posted: Thu Oct 29, 2015 5:52 pm
by acuellar
Entonces sólo tiene que guardarlo en .rtf y lo pueden modificar con WORD cuando sea necesario.

Saludos,

Adhemar

Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE

Posted: Thu Oct 29, 2015 5:59 pm
by joseluisysturiz
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...

Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE

Posted: Fri Oct 30, 2015 7:25 am
by Loren
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: Select all | Expand

   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.

Re: ACTUALIZAR DATOS DE DOCUMENTO DE WORD DINAMICAMENTE

Posted: Fri Oct 30, 2015 9:22 pm
by joseluisysturiz
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: