FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper Problemas con tWord y reemplazar variables
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Problemas con tWord y reemplazar variables
Posted: Mon Aug 21, 2006 06:28 PM

Hola amigos :

He utilizado lo desarrollado por Jose Gimenez y posteriormente modificado o aclarado por Manuel Valdenebro. WORDMCN.PRG. Y todo parece funcionar bien. Excepto que no consigo que lo puesto entre corchetes en el documento word lo reemplace por el dato del campo del fichero y esto hace que se quede en el bucle y no salga.

Por si os puede ayudar a continuación pongo el codigo:

store Curdrive() to xdri
store xdri + ":\" + curdir(xdri) + "\" to xdir
store xdir + "EMP" + empr + "\cert" + ejer + ".doc" to fich
store xdir + "certmode.doc" to fic1
if file (fich)
if MsgYesNo("El Certificado se ha emitido anteriormente," + chr(13) +;
" ¿ Desea recacerlo ? ","Certificado existente")
erase &fich
opci11 = "S"
else
opci11 = "N"
endif
else
opci11 = "S"
endif
if opci11 = "S"
SELECT 1
use EMPRESA SHARE
OrdSetfocus("empre01")
seek empr
oWord:=TOleAuto():New( "Word.Application" )
cPlantilla := (fic1)
oDoc :=oWord:Documents:Open(cPlantilla) // abre el doc modelo
// nombre de la variable
cViejo := "[EMPRESA_APELLIDOS]"
cCampo := (FIELDGET (FIELDPOS(apellidos)))
cFich := fich
cNuevo := (cFich)->(FIELDGET (FIELDPOS(cCampo)))
IF VALTYPE (cNuevo) = "C" // tipo caracter
cNuevo := RTRIM (cNuevo)
ENDI
REEMPLACE (oDoc, cViejo, cNuevo )
oDoc := oWord:Get("ActiveDocument") // object (documento activo)
oDoc:Invoke( "SaveAs", cFich ) // graba fichero
oDoc:Invoke('Close',0) // cierra fichero
endif
clos data
oWord:=TOleAuto():New( "Word.Application" )
oWord:Documents:Open(fich)
oWord:Visible := .T.
oWord:Set( "WindowState", 1 )
oWord:End()
OleUninitialize()
RETURN (NIL)

STATIC FUNCTION REEMPLACE (oDoc, cViejo, cNuevo)
LOCAL oSelection, oTexto, oFind
oSelection := oDoc
oTexto := oSelection:Range
oFind := oTexto:Find
oFind:Text:= cViejo
oFind:Forward:=.T.
oFind:Wrap:= INT(1)
oFind:Format:=.f.
oFind:MatchCase:=.f.
oFind:Execute()

*en este bucle se queda y no sale

WHILE oFind:Found
oTexto:Text:=cNuevo
oFind:Execute()
Enddo
RETURN nil

Si podeis ayudarme os lo agradeceria mucho.

Un saludo

Carlos

Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con tWord y reemplazar variables
Posted: Mon Aug 21, 2006 08:37 PM
Carlos,

Si solo vas a reemplazar una vez el texto, te puedes evitar el bucle:
if oFind:Found 
   oTexto:Text:=cNuevo 
endif
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Problemas con tWord y reemplazar variables
Posted: Tue Aug 22, 2006 07:31 AM

Hola Antonio y gracias por tus ayudas. El problema le tengo en que no reemplaza, aunque le ponga lo que tu me indicas en el destino no cambia el [APELLIDOS] por el contenido del campo apellidos del fichero EMPRESA.

Un saludo

Carlos

Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con tWord y reemplazar variables
Posted: Tue Aug 22, 2006 08:59 AM

Carlos,

Igual no le gusta el guión bajo de EMPRESA_APELLIDOS. Prueba a cambiarlo a EMPRESAAPELLIDOS

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Problemas con tWord y reemplazar variables
Posted: Tue Aug 22, 2006 06:45 PM

Hola de nuevo ya he podido solucionar el problema y ha sido facil ya que yo introducia el campo del fichero directamente y no el campo de un fichero que contenia el campo a reemplazar asique en vez de poner en los dos sitios (FIELDGET (FIELDPOS(apellidos))) he puesto simplemente (apellidos) y funciona, te lo digo por si hay alguien que le pase o le pueda pasar. Un saludo y gracias por tu interes Antonio.

Carlos

Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con tWord y reemplazar variables
Posted: Tue Aug 22, 2006 06:55 PM

Carlos,

Me alegro de que esté solucionado :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Problemas con tWord y reemplazar variables
Posted: Wed Oct 03, 2012 05:03 PM

Hola queria saber si tenes el ejemplo de como reemplazar una variable en word por un campo de una dbf?
He probado tu ejemplo pero no logro hacerlo funcionar, tal vez ahora lo tengas de otra manera.
Desde ya gracias.
Te saludo atte.
Marcelo

FWH - Harbour - BCC7 - PellesC

Continue the discussion