Page 1 of 1

¿ tword() o word.application ?

Posted: Wed May 22, 2019 2:26 am
by wyerco613
Estimados

Solo necesito colocar el Nombre y el rut de una tabla DBF en una plantilla echa en WORD.

Use tword() pero no estaba la classe la encontre y baje pero me marco un monton de variables no declaradas y 2 funciones que no existen.

Vi los ejemplos de word.application y ninguno es muy claro.

Muchas Gracias

Waldemar

Re: ¿ tword() o word.application ?

Posted: Wed May 22, 2019 12:40 pm
by armando.lagunas
Buen día:

aquí encontré un enlace que te puede orientar a lo que solicitas.

http://forums.fivetechsupport.com/viewt ... rd#p183361


Espero de que te pueda ayudar, saludos

Re: ¿ tword() o word.application ?

Posted: Wed May 22, 2019 3:56 pm
by wyerco613
Estimado Armando

Ya revise este y muchos más enlaces es más ocupe el mismo ejemplo (y otros más)y tiene muchos errores, quizás la clase TWord es muy antigua.

Ojala encuentre una respuesta pronto ya que es urgente.

A propósito te mande un mail lo recibiste ?

Saludos

Waldemar

Re: ¿ tword() o word.application ?

Posted: Thu May 23, 2019 12:01 am
by wyerco613
Estimados

¿ Alguien ?

Es urgente

Waldemar

Re: ¿ tword() o word.application ?

Posted: Thu May 23, 2019 11:40 am
by cmsoft
Hola, yo estoy usando esto. Tomo un modelo (en formato RTF) y le cargo los datos de una tabla.

Code: Select all

***************************************
** Emitir Actas
STATIC FUNCTION Acta (cDoc)
LOCAL cText, oWord, oDoc
cText := MEMOREAD(hb_CurDrive()+":\"+curdir()+"\Modelos\"+cDoc+".rtf")
IF !FILE(hb_CurDrive()+":\"+curdir()+"\Modelos\"+cDoc+".rtf")
    MsgStop("El archivo base no existe"+chr(10)+cDoc,"Error")
    RETURN  nil
ENDIF
TransformarTexto(@cText)
   
MemoWrit( hb_CurDrive()+":\"+curdir()+"\Impresion\"+cDoc+".Temp.rtf", cText )
IF (oWord := WinWordObj() ) == nil
   MsgAlert( "MS Word no instalado" ,  "Alerta" )        
   ELSE
   oDoc = oWord:Documents:Open(hb_CurDrive()+":\"+curdir()+"\Impresion\"+cDoc+".Temp.rtf")
   IF oDoc == nil
      MsgAlert("Fallo crear documento, verifique que no este en uso" , "Alerta"  )           
   ENDIF
ENDIF
oDoc:Application:Visible := .t.
RETURN nil

***********************************************************
** Hacer el RTF
STATIC FUNCTION TransformarTexto(cText)
   cText := STRTRAN(ctext,"<<RUT>>"   ,ALLTRIM(datos->RUT) )
   cText := STRTRAN(ctext,"<<NOMBRE>>"   ,ALLTRIM(datos->nombre) )   
RETURN nil
Claramente en el modelo, donde tiene que ir el RUT y el NOMBRE, los pongo entre <<>>
Entiendo que necesitas imprimir en un mismo paso varios registros. Pero te puede servir como idea inicial

Re: ¿ tword() o word.application ?

Posted: Sat May 25, 2019 5:53 am
by wyerco613
cmsoft wrote:Hola, yo estoy usando esto. Tomo un modelo (en formato RTF) y le cargo los datos de una tabla.

Code: Select all

***************************************
** Emitir Actas
STATIC FUNCTION Acta (cDoc)
LOCAL cText, oWord, oDoc
cText := MEMOREAD(hb_CurDrive()+":\"+curdir()+"\Modelos\"+cDoc+".rtf")
IF !FILE(hb_CurDrive()+":\"+curdir()+"\Modelos\"+cDoc+".rtf")
    MsgStop("El archivo base no existe"+chr(10)+cDoc,"Error")
    RETURN  nil
ENDIF
TransformarTexto(@cText)
   
MemoWrit( hb_CurDrive()+":\"+curdir()+"\Impresion\"+cDoc+".Temp.rtf", cText )
IF (oWord := WinWordObj() ) == nil
   MsgAlert( "MS Word no instalado" ,  "Alerta" )        
   ELSE
   oDoc = oWord:Documents:Open(hb_CurDrive()+":\"+curdir()+"\Impresion\"+cDoc+".Temp.rtf")
   IF oDoc == nil
      MsgAlert("Fallo crear documento, verifique que no este en uso" , "Alerta"  )           
   ENDIF
ENDIF
oDoc:Application:Visible := .t.
RETURN nil

***********************************************************
** Hacer el RTF
STATIC FUNCTION TransformarTexto(cText)
   cText := STRTRAN(ctext,"<<RUT>>"   ,ALLTRIM(datos->RUT) )
   cText := STRTRAN(ctext,"<<NOMBRE>>"   ,ALLTRIM(datos->nombre) )   
RETURN nil
Claramente en el modelo, donde tiene que ir el RUT y el NOMBRE, los pongo entre <<>>
Entiendo que necesitas imprimir en un mismo paso varios registros. Pero te puede servir como idea inicial

Cesar muchas gracias por el ejemplo, creo que es lo que necesito, lo pruebo y te aviso.

Atentamente

Waldemar