Page 1 of 1

classe TWord

Posted: Mon Jan 02, 2006 8:29 pm
by Fco_Ozuna
Feliz Año Nuevo a Todos!!

Porque no me funciona, necesito abrir un archivo de Word existente, hago lo siguiente y me arroja el siguiente error:

oWord = TOleAuto():New( "Word.Application" )
oWord:OpenDoc("Prueba.Doc")

OPENDOC: DISP_E_UNKNOWNNAME

y con:

oWord := TWord():New()
oWord:OpenDoc("Prueba.Doc")

oWord:Preview()

ocurre un GPF
called from OLEINVOKE(0)
called from TWORD:PREVIEW(392)

FW23, HARBOUR, BCC55

Gracias por su atencion..

Re: classe TWord

Posted: Tue Jan 03, 2006 6:42 pm
by fleal
Prueba esto

oWord:OpenDoc( DirDondeEstaElDocumento+"Prueba.Doc")

ó lo que sería lo mismo

oWord:OpenDoc( "C:\Docs\Prueba.Doc")

o como se quiera que se llame tu directorio donde está el archivo que quieres abrir.

Re: classe TWord

Posted: Tue Jan 03, 2006 8:12 pm
by Fco_Ozuna
Gracias por tu respuesta fleal, pero no me funciono!!!, y por lo que estuve leyendo, la clase: oWord=TOleAuto():New( "Word.Application" ), es de xHarbour, y yo utilizo Harbour, y no doy con bola, si se trata de crear un nuevo documento, modificarlo, previzualizarlo e imprimirlo, no hay problema, el problema lo tengo cuando el documento ya esta creado y lo quiero modificar desde la clase TWord, cualquier comentario será agradecido.

Gracias.

Re: classe TWord

Posted: Wed Jan 04, 2006 12:45 am
by Vikthor
Revisa si el método New de tu clase es similar a este :

Code: Select all

METHOD OpenDoc( cNombreDoc )  CLASS TWord
       local sal := .t.
       ::oDocs := ::oWord:Get( "Documents" )
       if file( cNombreDoc )
          ::oActiveDoc  := ::oDocs:Invoke( "Open",cNombreDoc )
          if valtype(::oActiveDoc) <> 'O'
             sal := .f.
          endif
       else
          sal := .f.
       endif
       ::oTexto        := ::oWord:Get( "Selection" )
       ::oOptions      := ::oWord:Get("Options")              // Vikthor
       ::oMailMerge    := ::oActiveDoc:Get( "MailMerge")    // Vikthor
       ::oTables       := ::oActiveDoc:Get( "Tables")              // Vikthor
       ::cNombreDoc    := cNombreDoc
       ::nLinea        := 0
       ::nCol          := 0
       ::nPage         := 0
       ::nYoffset      := 0
       ::nXoffset      := 0
       ::oSelection    := ::oActiveDoc
       ::lstartpag     := .t.
       ::lsetcm        := .f.
       ::lOverflowing  := .f.
       ::nlastrow      := 0
       ::ctextoverflow := ''

       return sal

Re: classe TWord

Posted: Wed Jan 04, 2006 1:13 am
by Fco_Ozuna
Gracias Vickthor por contestar.

Pues no, es diferente en las Datas y los Methodos que llama la clase, que veo es modificada por Ti, serias tan amable de decirme si la puedo descargar de alguna parte o pasarmela a mi correo fco_ozuna@prodigy.net.mx, te lo agradeceria mucho.

Gracias....

Re: classe TWord

Posted: Wed Jan 04, 2006 1:47 am
by Vikthor
¡listo el pollo!... Enviada a tu cuenta de correo.

Posted: Wed Jan 04, 2006 7:42 am
by Antonio Linares
Vikthor,

Puedes publicarla en algún sitio, como www.hyperupload.com para que la descargue quien la necesite ? gracias.

Posted: Wed Jan 04, 2006 3:31 pm
by Vikthor
Antonio :

Con mucho gusto, la voy a subir al sitio de DbWide que esta en http://vikthor.com.mx

La clase funciona con xHarbour e ignoro si el código es complatible con Harbour.

Pero haciendo unos pequeños ajuste la clase debe ser compatible con ambos compiladores.