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
Pregunta sobre la clase TWORD()
- Armando
- Posts: 3271
- Joined: Fri Oct 07, 2005 8:20 pm
- Location: Toluca, México
- Been thanked: 2 times
- Contact:
Pregunta sobre la clase TWORD()
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- Sebastián Almirón
- Posts: 159
- Joined: Mon Dec 12, 2005 9:56 am
- Location: Moralzarzal - Spain
Re: Pregunta sobre la clase TWORD()
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
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
- Armando
- Posts: 3271
- Joined: Fri Oct 07, 2005 8:20 pm
- Location: Toluca, México
- Been thanked: 2 times
- Contact:
Re: Pregunta sobre la clase TWORD()
Hola Sebastián:
Ante todo, muchas gracias por tu excelente clase.
Usando el código que sugeriste me tira un error al ejecutarlo
Es en esta parte del código fuente
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
Ante todo, muchas gracias por tu excelente clase.
Usando el código que sugeriste me tira un error al ejecutarlo
Code: Select all | Expand
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
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- karinha
- Posts: 7935
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: Pregunta sobre la clase TWORD()
Armando, usas esta?
https://fivewin.com.br/index.php?/topic/16373-erro-twordhbprg-invoke/
Regards, saludos.
https://fivewin.com.br/index.php?/topic/16373-erro-twordhbprg-invoke/
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- Sebastián Almirón
- Posts: 159
- Joined: Mon Dec 12, 2005 9:56 am
- Location: Moralzarzal - Spain
Re: Pregunta sobre la clase TWORD()
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.
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.
- Armando
- Posts: 3271
- Joined: Fri Oct 07, 2005 8:20 pm
- Location: Toluca, México
- Been thanked: 2 times
- Contact:
Re: Pregunta sobre la clase TWORD()
Joao:
Me parece que no es la misma. si Sebastián me autoriza te pego el código fuente aquí.
Saludos
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- Armando
- Posts: 3271
- Joined: Fri Oct 07, 2005 8:20 pm
- Location: Toluca, México
- Been thanked: 2 times
- Contact:
Re: Pregunta sobre la clase TWORD()
Sebastián
Esto aparece en el código fuente
Saludos
Esto aparece en el código fuente
Code: Select all | Expand
// 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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero