Page 1 of 1
Word en una Window
Posted: Thu Sep 06, 2018 3:19 pm
by Marcelo Roggeri
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
// 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
Re: Word en una Window
Posted: Fri Sep 07, 2018 8:29 am
by Antonio Linares
Marcelo,
Tienes Word instalado ?
Disculpa la pregunta pero por si acaso
Re: Word en una Window
Posted: Fri Sep 07, 2018 10:46 am
by Ariel
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.
Re: Word en una Window
Posted: Fri Sep 07, 2018 11:37 am
by Marcelo Roggeri
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
Re: Word en una Window
Posted: Fri Sep 07, 2018 12:05 pm
by Antonio Linares
Prueba asi:
oActiveX = TActiveX():New( oWnd, "Word.Application" )
oActiveX:Visible = .T.
oWnd:oClient = oActiveX // To fill the entire window surface
Re: Word en una Window
Posted: Fri Sep 07, 2018 12:29 pm
by Marcelo Roggeri
Sigue igual Antonio, no abre nada, quedando el word pillado en memoria
Re: Word en una Window
Posted: Fri Sep 07, 2018 3:26 pm
by Giovany Vecchi
En este código funciona, más necesita implementar algunos recursos que no he tenido tiempo para hacer.
Code: Select all
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
Re: Word en una Window
Posted: Fri Sep 07, 2018 3:50 pm
by Marcelo Roggeri
Gracias Giovany, tu lo invocas de otra manera pero para el caso puede servir.
Veré como prosigo con el resto
atte Marcelo
Re: Word en una Window
Posted: Fri Sep 07, 2018 3:54 pm
by Giovany Vecchi
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.
Re: Word en una Window
Posted: Fri Sep 07, 2018 6:40 pm
by Marcelo Roggeri
Si por supuesto
Re: Word en una Window
Posted: Sat Sep 08, 2018 2:39 pm
by cnavarro
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
// 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
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
Re: Word en una Window
Posted: Sat Sep 08, 2018 3:38 pm
by Marcelo Roggeri
Hola Cristobal buenos dias, si lo probé pero tampoco anduvo.
Saludos
Re: Word en una Window
Posted: Thu Sep 27, 2018 9:02 pm
by Marcelo Roggeri
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
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