Pregunta sobre la clase TWORD()

Pregunta sobre la clase TWORD()

Postby Armando » Thu Mar 17, 2022 3:26 am

Saludos al foro:

Amigos, estoy usando la excelente clase TWord() de Sebastián Almirón, si es que no estoy equivocado,
por el momento solo la uso para remplazar cadenas de texto en el cuerpo del documento sin problema
alguno.

Ahora necesito remplazar una cadena de texto pero en el encabezado (Header) del documento y ahí
no me hace el cambio.

Alguíen que me saque del atolladero?

Saludos y muchas gracias
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Pregunta sobre la clase TWORD()

Postby Sebastián Almirón » Thu Mar 17, 2022 9:16 am

Hola Armando,

No se si la clase TWord que utilizas es la mia (la hice hace 20 años), si así fuese creo recordar que tenía un método SetHeader() para que todas las operaciones se hicieran sobre la cabecera (Say, Line, etc.)

Es decir si quieres hacer el Replace sobre la cabecera:
oWord:SetHeader()
oWord:Replace(cbusca,cnueva)

Para volver a dejar todo sobre el cuerpo del documento:
oWord:SetMainDoc()

Prueba a ver
Saludos
User avatar
Sebastián Almirón
 
Posts: 155
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: Pregunta sobre la clase TWORD()

Postby Armando » Thu Mar 17, 2022 2:58 pm

Hola Sebastián:

Ante todo, muchas gracias por tu excelente clase.

Usando el código que sugeriste me tira un error al ejecutarlo

Code: Select all  Expand view

Application
===========
   Path and name: C:\AppPro\AppPro.Exe (32 bits)
   Size: 5,869,568 bytes
   Compiler version: Harbour 3.2.0dev (r1904111533)
   FiveWin  version: FWH 20.12
   C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)
   Windows version: 6.2, Build 9200

   Time from start: 0 hours 0 mins 15 secs
   Error occurred at: 17/03/2022, 08:53:40
   Error description: (DOS Error -2147352572) WINOLE/1007  Error de argumento: SET
   Args:
     [   1] = C   SeekView
     [   2] = N   10

Stack Calls
===========
   Called from:  => TOLEAUTO:SET( 0 )
   Called from: Source\TWord.Prg => TWORD:SETHEADER( 747 )
 


Es en esta parte del código fuente

Code: Select all  Expand view

METHOD SetHeader() CLASS TWord
       local oWindow := ::oActiveDoc:Get( "ActiveWindow" )
       local oView   := oWindow:Get(  "View")
       oView:Set( "SeekView" , 10 )         // 9 Header 10 Footer           <=======  Esta línea tira el error
       ::oSelection := ::oTexto:Get( "HeaderFooter")
       release oWindow, oView
       RETURN nil
 


También veo que el buen amigo Vikthor hizo algunos cambios a la clase, si quieres te muestro todo el código fuente de la clase

Muchas gracias por tu apoyo, Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Pregunta sobre la clase TWORD()

Postby karinha » Thu Mar 17, 2022 3:15 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Pregunta sobre la clase TWORD()

Postby Sebastián Almirón » Thu Mar 17, 2022 6:09 pm

Hola Armando,

Veo que esa clase TWord no es la que yo hice, aunque es parecida está modificada.
En principio lo unico que veo raro en el método SetHeader() que has puesto, es que el segundo parametro de la línea donde pone SeekView debería ser 9, para que se refiera a la cabecera ya que 10 es para el pie de página. No se si el error será por eso.
User avatar
Sebastián Almirón
 
Posts: 155
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: Pregunta sobre la clase TWORD()

Postby Armando » Thu Mar 17, 2022 6:11 pm

Joao:

Me parece que no es la misma. si Sebastián me autoriza te pego el código fuente aquí.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Pregunta sobre la clase TWORD()

Postby Armando » Sat Mar 19, 2022 3:53 am

Sebastián

Esto aparece en el código fuente

Code: Select all  Expand view

// Clase TWord
// Mira el documento TWord.doc para información
// 2003 Sebastián Almirón             <======================


/*

   5-Diciembre-2003
   Clase TWord
   Modificada por : Víctor Manuel Tomás Díaz [  Vikthor  ] vikthor@creswin.com

   He quitado todas las llamadas a las funciones OleGetProperty() , OleSetProperty() , OleInvoke().
   Ahora es usada la clase TOleAuto() y sus Metodos :Get , :Set , :Invoke

   ++ METHOD Sendmail( lAttach )
   ++ METHOD HeaderFooter( nOption )
   ++ METHOD OpenDataSource( cFile )
   ++ METHOD AddField( cField )
   ++ METHOD WebPagePreview()

   09-Mar-2004
   ++ Data oTables
   ++ METHOD AddTables()

   08-Jun-2004
   ++ METHOD View( nView )
   oWord:View( 1 )    Vista Normal
   oWord:View( 3 )    Vista Diseño
   oWord:View( 6 )    Vista Web

   ++ METHOD Zoom( nPercent )

   03-Dic-2004
   ** Modificación al Metodo New usando TRY y CATCH para recuperar una instacia abierta
      crearla o enviar un mensaje de error.

   05-Mayo-2005
   ++ METHOD ChangeField( cText , cNameField )
*/

 


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 43 guests