Problemas con tWord y reemplazar variables

Problemas con tWord y reemplazar variables

Postby colthop » Mon Aug 21, 2006 6:28 pm

Hola amigos :

He utilizado lo desarrollado por Jose - 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
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Postby Antonio Linares » Mon Aug 21, 2006 8:37 pm

Carlos,

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42111
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby colthop » Tue Aug 22, 2006 7: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
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Postby Antonio Linares » Tue Aug 22, 2006 8: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42111
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby colthop » Tue Aug 22, 2006 6: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
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Postby Antonio Linares » Tue Aug 22, 2006 6:55 pm

Carlos,

Me alegro de que esté solucionado :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42111
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Problemas con tWord y reemplazar variables

Postby Marcelo Roggeri » Wed Oct 03, 2012 5: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
User avatar
Marcelo Roggeri
 
Posts: 342
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina


Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 20 guests