FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Word en una Window
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Word en una Window
Posted: Thu Sep 06, 2018 03:19 PM
Hola buenos dias, necesito utilizar el ejemplo de word.prg que esta en samples, lo compilo y no hace nada.
Necesito abrir un archivo de word, editarlo y luego guardarlo dentro de una tabla mysql, tambien poder ver el contenido en cualquier momento.
Ahora lo que necesito es poder abrir word dentro de la ventana oWnd
Code (fw): Select all Collapse
// Using Microsoft Office Word ActiveX

#include "FiveWin.ch"

function Main()

   local oWnd, oActiveX

   DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"

          oActiveX = TActiveX():New( oWnd, "Word.Application" )

          oWnd:oClient = oActiveX // To fill the entire window surface

   ACTIVATE WINDOW oWnd

return nil

Gracias cualquier ayuda
Marcelo Roggeri
FWH - Harbour - BCC7 - PellesC
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Word en una Window
Posted: Fri Sep 07, 2018 08:29 AM

Marcelo,

Tienes Word instalado ?

Disculpa la pregunta pero por si acaso :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 389
Joined: Wed Nov 29, 2006 01:51 PM
Re: Word en una Window
Posted: Fri Sep 07, 2018 10:46 AM

Antonio,
a mi tampoco me funciona el ej. me da el tipico msg, "el programa no responde", lo probe con w7, ni siquiera vemos la ventana de fondo.

Saludos.

Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Word en una Window
Posted: Fri Sep 07, 2018 11:37 AM

Antonio si lo tengo instalado, a mi no me da error al ejecutarlo pero al apagar la computadora y después al encenderla aparece una ventana de word como que no se ha guardado el documento.
Gracias por responder y cualquier ayuda me viene bien porque necesito implementar lo que mencione al inicio
Saludos
Marcelo

FWH - Harbour - BCC7 - PellesC
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Word en una Window
Posted: Fri Sep 07, 2018 12:05 PM

Prueba asi:

      oActiveX = TActiveX():New( oWnd, "Word.Application" )

      oActiveX:Visible = .T.

      oWnd:oClient = oActiveX // To fill the entire window surface
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Word en una Window
Posted: Fri Sep 07, 2018 12:29 PM

Sigue igual Antonio, no abre nada, quedando el word pillado en memoria

FWH - Harbour - BCC7 - PellesC
Posts: 244
Joined: Mon Jun 05, 2006 09:39 PM
Re: Word en una Window
Posted: Fri Sep 07, 2018 03:26 PM
En este código funciona, más necesita implementar algunos recursos que no he tenido tiempo para hacer.

Code (fw): Select all Collapse
Static oWndTst,oObjWord,oWordHWnd

FUNCTION OFFICE_WORD_TESTE()

   DEFINE WINDOW oWndTst TITLE "FiveWin ActiveX Support" 
 
   ACTIVATE WINDOW oWndTst on init OFFICE_WORD_TESTE_INI() ; 
     on resize If(HB_ISNIL(oObjWord),Nil,;
                  {oObjWord:Move(0,0),;
                   WndSetSize(oWordHWnd,oWndTst:nWidth-18,oWndTst:nHeight-42,.T.),;
                   oObjWord:Move(0,0)})
 
return nil
//----------------------------------------------------------------------------//
FUNCTION OFFICE_WORD_TESTE_INI()
  local oteste, oWindow, oView, oIncorp
  
#define GWL_WNDPROC         (-4)
#define GWL_HINSTANCE       (-6)
#define GWL_HWNDPARENT      (-8)
#define GWL_STYLE           (-16)
#define GWL_EXSTYLE         (-20)
#define GWL_USERDATA        (-21)
#define GWL_ID              (-12)

   oObjWord := CreateObject("Word.Application")

  syswait(.2)
  oWordHWnd := FindWindow( "opusapp", 0 )
  
  if oWordHWnd != nil
    SetWindowLong( oWordHWnd, -16, WS_OVERLAPPED+WS_CLIPCHILDREN)
    SetWindowLong( oWordHWnd, -20,  WS_EX_NOPARENTNOTIFY+WS_EX_TOPMOST )
    SetParent( oWordHWnd, oWndTst:hWnd )
  endif

  oObjWord:WindowState := -4137
  oObjWord:Move(0,0)
  oObjWord:Visible           := .T.

RETURN NIL
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Word en una Window
Posted: Fri Sep 07, 2018 03:50 PM

Gracias Giovany, tu lo invocas de otra manera pero para el caso puede servir.
Veré como prosigo con el resto
atte Marcelo

FWH - Harbour - BCC7 - PellesC
Posts: 244
Joined: Mon Jun 05, 2006 09:39 PM
Re: Word en una Window
Posted: Fri Sep 07, 2018 03:54 PM
Marcelo Roggeri wrote:Gracias Giovany, tu lo invocas de otra manera pero para el caso puede servir.
Veré como prosigo con el resto
atte Marcelo


Si tienes novedades. comparte con nosotros.
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Word en una Window
Posted: Fri Sep 07, 2018 06:40 PM

Si por supuesto

FWH - Harbour - BCC7 - PellesC
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Word en una Window
Posted: Sat Sep 08, 2018 02:39 PM
Marcelo Roggeri wrote:Hola buenos dias, necesito utilizar el ejemplo de word.prg que esta en samples, lo compilo y no hace nada.
Necesito abrir un archivo de word, editarlo y luego guardarlo dentro de una tabla mysql, tambien poder ver el contenido en cualquier momento.
Ahora lo que necesito es poder abrir word dentro de la ventana oWnd
Code (fw): Select all Collapse
// Using Microsoft Office Word ActiveX

#include "FiveWin.ch"

function Main()

   local oWnd, oActiveX

   DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"

          oActiveX = TActiveX():New( oWnd, "Word.Application" )

          oWnd:oClient = oActiveX // To fill the entire window surface

   ACTIVATE WINDOW oWnd

return nil

Gracias cualquier ayuda
Marcelo Roggeri


Marcelo, has probado

Code (fw): Select all Collapse
   DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"

          oActiveX = TActiveX():New( oWnd, "Word.Application" )

          oActiveX:lVisible  := .T.

          oWnd:oClient = oActiveX // To fill the entire window surface

   ACTIVATE WINDOW oWnd
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Word en una Window
Posted: Sat Sep 08, 2018 03:38 PM

Hola Cristobal buenos dias, si lo probé pero tampoco anduvo.
Saludos

FWH - Harbour - BCC7 - PellesC
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM
Re: Word en una Window
Posted: Thu Sep 27, 2018 09:02 PM
Hola retomando el hilo les cuento que logro ver el word dentro de la window, pero me da un error al ACTIVATE WINDOW
Me podran dar una mano por favor
Code (fw): Select all Collapse
FUNCTION ShowWord( oServer )
    local oQry, nHandle
    local oWndChild, oActiveX
    local cTemp := hb_CurDrive() + ":\" + CurDir() + "\tempWord.docx"
    local oWord, oDoc
    local oteste, oWindow, oView, oIncorp

    oQry = oServer:Query("SELECT file FROM files WHERE filename='marcelo.docx'")

    IF oQry:RecCount() > 0
       FErase( cTemp )

       nHandle := FCreate( cTemp )

       IF FError() # 0
          CursorArrow()
          MsgInfo( "Error al crear el archivo"  )
       ELSE

          FWrite( nHandle, oQry:file, Len( oQry:file ) )
          FClose( nHandle )

          oQry:End()

          DEFINE WINDOW oWndChild MDICHILD TITLE "WORD EN VENTANA HIJA" OF oWnd

                 oWord := CreateObject("Word.Application")

                 oDoc  := oWord:Documents:Open(cTemp) // abre el doc modelo

                 syswait(.2)
                 oWndChild := FindWindow( "opusapp", 0 )

                 if oWndChild != nil
                   SetWindowLong( oWndChild, -16, WS_OVERLAPPED+WS_CLIPCHILDREN)
                   SetWindowLong( oWndChild, -20,  WS_EX_NOPARENTNOTIFY+WS_EX_TOPMOST )

                   SetParent( oWndChild, oWnd:hWnd )

                 endif

                 oWord:WindowState := -4137

                 oWord:Move(0,0)

                 oWord:Visible           := .T.

          ACTIVATE WINDOW oWndChild

       ENDIF
    ELSE
        MsgInfo( "Archivo no encontrado" )
    ENDIF


RETURN NIL


Error description: Error BASE/1004 No exported method: BLCLICKED

Saludos
Marcelo
FWH - Harbour - BCC7 - PellesC

Continue the discussion