Colocar Excel/Word en Aplicacion

Colocar Excel/Word en Aplicacion

Postby cnavarro » 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: Select all  Expand view  RUN

           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: Select all  Expand view  RUN

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

Re: Colocar Excel/Word en Aplicacion

Postby MGA » Sun Aug 28, 2016 9: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
MGA
 
Posts: 1254
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Colocar Excel/Word en Aplicacion

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

Re: Colocar Excel/Word en Aplicacion

Postby MGA » Mon Aug 29, 2016 2: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
MGA
 
Posts: 1254
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Colocar Excel/Word en Aplicacion

Postby cnavarro » Tue Aug 30, 2016 9: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
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Colocar Excel/Word en Aplicacion

Postby MGA » 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
MGA
 
Posts: 1254
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Colocar Excel/Word en Aplicacion

Postby Sistem » 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 ... =4&t=14925

oExcel:ActiveWorkBook:SaveAs(cARQ,50)
FWH2008 | xHarbour | BCC74 | SQLRDD
User avatar
Sistem
 
Posts: 226
Joined: Sun May 13, 2012 7:52 am

Re: Colocar Excel/Word en Aplicacion

Postby MGA » Wed Aug 31, 2016 1:34 pm

Obrigado System
ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1254
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Colocar Excel/Word en Aplicacion

Postby MGA » Wed Aug 31, 2016 1: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

Image
ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1254
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Colocar Excel/Word en Aplicacion

Postby cnavarro » Wed Aug 31, 2016 3: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
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Colocar Excel/Word en Aplicacion

Postby MGA » Wed Aug 31, 2016 4:44 pm

Sr. Cristobal, obrigado!
ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1254
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 20 guests