FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Pregunta sobre la clase TWORD()
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Pregunta sobre la clase TWORD()
Posted: Thu Mar 17, 2022 03: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
Posts: 166
Joined: Mon Dec 12, 2005 09:56 AM
Re: Pregunta sobre la clase TWORD()
Posted: Thu Mar 17, 2022 09: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

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Pregunta sobre la clase TWORD()
Posted: Thu Mar 17, 2022 02: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 (fw): Select all Collapse
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 (fw): Select all Collapse
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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Pregunta sobre la clase TWORD()
Posted: Thu Mar 17, 2022 03:15 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 166
Joined: Mon Dec 12, 2005 09:56 AM
Re: Pregunta sobre la clase TWORD()
Posted: Thu Mar 17, 2022 06: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.

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Pregunta sobre la clase TWORD()
Posted: Thu Mar 17, 2022 06: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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Pregunta sobre la clase TWORD()
Posted: Sat Mar 19, 2022 03:53 AM
Sebastián

Esto aparece en el código fuente

Code (fw): Select all Collapse
// 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  ] <!-- e --><a href="mailto:vikthor@creswin.com">vikthor@creswin.com</a><!-- e -->

   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

Continue the discussion