FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Colocar Excel/Word en Aplicacion
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Colocar Excel/Word en Aplicacion
Posted: Sat May 18, 2013 12:09 PM
Buenos dias a todos
Estoy haciendo pruebas con OLE y me encuentro el siguiente problema:

Excel: he conseguido incrustar en un Dialog de un Folder que es lo que necesito
He seguido las instrucciones que aparecen en el siguiente LINK

http://forums.fivetechsupport.com/viewtopic.php?f=6&t=21028&p=111658&hilit=incrustar+ole#p111658

aunque tengo problemas cuando dejo el foco y vuelvo al dialogo que contiene el Folder, ya que tengo que pinchar en la barra de edicion para que pueda moverme por la hoja. Permite pinchar con el mouse pero no permite editar.
Tambien estoy estudiando cómo puedo hacer para que salga la barra de herramientas, ya que solo sale la barra de edicion.

Code (fw): Select all Collapse
           oFldUtiles:SetOption( nOpt )
           oBook := oExcel:Workbooks:Add()
           oHoja :=  oExcel:ActiveSheet()
           Sysrefresh()

           // No hace falta ya que se maximiza abajo
           //oExcel:Left     := 0
           //oExcel:Top      := 0
           //oExcel:Height   := 320
           //oExcel:Width    := 590

           SetWindowLong(oExcel:hWnd,-16,"L") //Es la función API SetWindowLongA, en este caso quita la barra de titulo de excel
           //SetForeWin(oExcel:hWnd) //Es la funcion API SetForegroundWindow tiene que ir antes de la llamada a setparent()
           //SetParent(oExcel:hWnd,oWnd:hWnd) //Incrusta Excel en mi ventana
           //oWnd:SetText( cverotc + ' - Libro abierto: '+clibro )

           oExcel:ActiveWorkBook:Protect('',.f.,.f.) //Para poder manupilar el estado de la venta del libro
           oExcel:WindowState            := -4137 //Se quitan los botones de maximizar, minimizar y cerrar
           oExcel:Windows(1):WindowState := -4137 //Se maximiza Excel en mi ventana // -4140 Minimiza Excel
           oExcel:ScreenUpdating         := .T.
           oExcel:Visible                := .T. //Hace Excel visible
           oExcel:DisplayAlerts          := .F.

           //oFldUtiles:aDialogs[ nOpt ]:bGotFocus  := { || oFldUtiles:aDialogs[ nOpt ]:Refresh(), SysRefresh() }
           oFldUtiles:aDialogs[ nOpt ]:bGotFocus  := { || oFldUtiles:Refresh() }           
           SetParent( oExcel:hWnd ,  oFldUtiles:aDialogs[ nOpt ]:hWnd )


Word:
He mirado los ejemplos que hay en FWH de Word.prg y Wordtable.prg, pero están hechos sobre una ventana y no sobre un dialog de un Folder.

Como no puedo incrustar la ventana del objeto, Word se ejecuta fuera de la Aplicacion
No puedo incrustar la ventana en el dialogo del FolderEx, la instruccion que uso en Excel, en Word me da error
Por que en Excel funciona y en Word no?

Code (fw): Select all Collapse
           oFldUtiles:SetOption( nOpt )

           oDoc := oWord:Documents:Add()
           SysRefresh()
           oWord:WindowState            := -4137 //Se quitan los botones de maximizar, minimizar y cerrar

           oWord:Visible                := .T. //Hace Word visible

           SetParent( oWord:hWnd,  oFldUtiles:aDialogs[ nOpt ]:hWnd )
           // Esta instruccion me da error, me dice que hWnd no existe como propiedad de oWord


Como puedo solucionarlo?
Gracias
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: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: Colocar Excel/Word en Aplicacion
Posted: Sun Aug 28, 2016 09:43 PM

Sr. Cristobal Navarro, espero que te ajude, testei com HARBOUR e funcionou perfeitamente. :D

/*******/
procedure AbrePlanilhaExcel( cPlanilha )
/

/
local oError, oExcel, cTitulo

Default cPlanilha := ''

if s_oWndExcel != nil
if !iszoomed(s_oWndExcel:hwnd)
s_oWndExcel:Maximize()
endif
return
endif

if !Empty(cPlanilha) .and. !File(cPlanilha)
MsgStop('Planilha informada não foi localizada. Verifique!', 'Atenção!')
return
endif

TRY
oExcel := CreateObject( "Excel.Application" )
CATCH oError
RetornaErrorTryCatch( oError, 'PLANILHA EXCEL' )
Return
END

cTitulo := ".:: EXCEL ::. "+Alltrim(cPlanilha)
oExcel:Workbooks:Open(cPlanilha)
SysRefresh()

define window s_oWndExcel mdichild of M->oWnd vscroll title cTitulo

s_oWndExcel:bKeyDown := {| nKey | IIf(nKey==VK_ESCAPE,s_oWndExcel:end(),;
IIf(nKey==VK_F6 .and. len(M->oWnd:oWndClient:aWnd) > 1, M->oWnd:NextWindow(),))}

activate window s_oWndExcel maximized ON Init(OnInitExcel(@oExcel));
Valid(ValidExcel( oExcel ))

return

/*******/
static procedure OnInitExcel(oExcel)
/

/
SetWindowLong(oExcel:hWnd,-16,"L")
oExcel:DisplayAlerts := .F.
oExcel:ActiveWorkBook:Protect('',.f.,.f.) //Para poder manupilar el estado de la venta del libro
oExcel:WindowState := -4137 //Se quitan los botones de maximizar, minimizar y cerrar
oExcel:Windows(1):WindowState := -4137 //Se maximiza Excel en mi ventana
oExcel:ScreenUpdating := .T.
oExcel:Visible := .T.
oExcel:DisplayAlerts := .F.

s_oWndExcel:bGotFocus := { || IIf( s_oWndExcel != nil, s_oWndExcel:Refresh(),) }
SetParent(oExcel:hWnd, s_oWndExcel:hWnd) //Incrusta Excel en mi ventana
return

/*******/
static function ValidExcel( oExcel )
/

/
oWorkBooks := oExcel:WorkBooks
oWorkBooks:Close()
oWorkBooks:= NIL

oExcel:Quit()
oExcel:= NIL

Hb_GCall(.t.)
s_oWndExcel := nil

return(.t.)

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Colocar Excel/Word en Aplicacion
Posted: Sun Aug 28, 2016 10:02 PM

El mensaje era muy antiguo y ya lo solucioné, pero
Muchas gracias por el código

Saludos

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: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: Colocar Excel/Word en Aplicacion
Posted: Mon Aug 29, 2016 02:49 AM

Sr. Cristobal,

é possível ABRIR um DOCUMENTO e ao fechar a JANELA WINDOW salvar o documento?

obrigado

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Colocar Excel/Word en Aplicacion
Posted: Tue Aug 30, 2016 09:43 PM
SGS wrote:Sr. Cristobal,

é possível ABRIR um DOCUMENTO e ao fechar a JANELA WINDOW salvar o documento?

obrigado


Disculpa, no entiendo bien tu mensaje
Quieres abrir un documento y que no permita guardar/grabar el documento?

Esta es la traducción que me hace google translate

Puede abrir un documento y cerrar la ventana ventana Guardar el documento?
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: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: Colocar Excel/Word en Aplicacion
Posted: Wed Aug 31, 2016 10:49 AM

Sr. Cristobal,

Me gustaría abrir un documento, cambiar y guardar. :)

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 226
Joined: Sun May 13, 2012 07:52 AM
Re: Colocar Excel/Word en Aplicacion
Posted: Wed Aug 31, 2016 12:15 PM

SGS, veja o link https://msdn.microsoft.com/pt-br/librar ... 94819.aspx
tem um exemplo em VBA

algo do tipo
ActiveWorkbook.Close SaveChanges:=False

talvez ajude

e

http://www.pctoledo.com.br/forum/viewto ... =4t=14925

oExcel:ActiveWorkBook:SaveAs(cARQ,50)

&

FWH2008 | xHarbour | BCC74 | SQLRDD
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: Colocar Excel/Word en Aplicacion
Posted: Wed Aug 31, 2016 01:34 PM

Obrigado System

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: Colocar Excel/Word en Aplicacion
Posted: Wed Aug 31, 2016 01:59 PM
Sr. Cristobal,

En un oficce con la versión : 16.0.7070.2033 , que está pasando en el siguiente problema de la pantalla .

Se desalineado con la ventana.

Usted sabe si se puede solucionar el problema?

Gracias

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Colocar Excel/Word en Aplicacion
Posted: Wed Aug 31, 2016 03:40 PM
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: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: Colocar Excel/Word en Aplicacion
Posted: Wed Aug 31, 2016 04:44 PM

Sr. Cristobal, obrigado!

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin

Continue the discussion