Word en una Window

Word en una Window

Postby Marcelo Roggeri » Thu Sep 06, 2018 3: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: Select all  Expand view
// 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
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Word en una Window

Postby Antonio Linares » Fri Sep 07, 2018 8:29 am

Marcelo,

Tienes Word instalado ?

Disculpa la pregunta pero por si acaso :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41365
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Word en una Window

Postby Ariel » 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.
Ariel
 
Posts: 374
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: Word en una Window

Postby Marcelo Roggeri » 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
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Word en una Window

Postby Antonio Linares » 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
User avatar
Antonio Linares
Site Admin
 
Posts: 41365
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Word en una Window

Postby Marcelo Roggeri » Fri Sep 07, 2018 12:29 pm

Sigue igual Antonio, no abre nada, quedando el word pillado en memoria
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Word en una Window

Postby Giovany Vecchi » Fri Sep 07, 2018 3:26 pm

En este código funciona, más necesita implementar algunos recursos que no he tenido tiempo para hacer.

Code: Select all  Expand view

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
 
User avatar
Giovany Vecchi
 
Posts: 209
Joined: Mon Jun 05, 2006 9:39 pm
Location: Brasil

Re: Word en una Window

Postby Marcelo Roggeri » Fri Sep 07, 2018 3: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
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Word en una Window

Postby Giovany Vecchi » Fri Sep 07, 2018 3: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.
User avatar
Giovany Vecchi
 
Posts: 209
Joined: Mon Jun 05, 2006 9:39 pm
Location: Brasil

Re: Word en una Window

Postby Marcelo Roggeri » Fri Sep 07, 2018 6:40 pm

Si por supuesto
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Word en una Window

Postby cnavarro » Sat Sep 08, 2018 2: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: Select all  Expand view
// 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: Select all  Expand view


   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
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Word en una Window

Postby Marcelo Roggeri » Sat Sep 08, 2018 3:38 pm

Hola Cristobal buenos dias, si lo probé pero tampoco anduvo.
Saludos
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Word en una Window

Postby Marcelo Roggeri » Thu Sep 27, 2018 9: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: Select all  Expand view
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
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

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