FoxPro/Visual FoxPro - Como abrir archivos de Excel desde un botón de comando de un formulario

 
Vista:
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Como abrir archivos de Excel desde un botón de comando de un formulario

Publicado por Jose Francisco (166 intervenciones) el 25/05/2019 00:22:18
Buenas tardes estimados , tengo el siguiente código desde un botón de comando de un formulario, abre los directorios, me sitúo en los archivos, pero no logro hacer abrir archivos de excel.
Aguardo alguna respuesta.-
Gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
LOCAL lcFile,;
	lcCaption,;
	loExcel as Object,;
	loDoc as Object,;
	loex as Exception
lcFile = GETFILE("Xlsx")
IF !EMPTY(lcFile)
	TRY
		loExcel = CREATEOBJECT("Excel.Application")
	CATCH TO loex
 
	FINALLY
	ENDTRY
	IF VARTYPE(loex)="O"
		MESSAGEBOX("No tiene Microsoft Excel ® instalado?",0,"Mensaje")
	ELSE
		*loExcel.file.Open(m.lcfile)
		*loDoc = loExcel.ActiveDocument
		loExcel.Visible = .t.
 
 
		*lcCaption = file.ActiveWindow.Caption + [ - Microsoft Excel]
		 DECLARE integer FindWindow IN "user32" String, String
		  *lnHWnd = FindWindow(Null , lcCaption)
		  DECLARE LONG BringWindowToTop IN "user32" LONG HWND
		  *BringWindowToTop(lnHWND)
	ENDIF
ENDIF
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Como abrir archivos de Excel desde un botón de comando de un formulario

Publicado por Leonardo Daniel A. (500 intervenciones) el 25/05/2019 06:22:31
En Vfox nunca se me ofrecio.... en PowerBuilder tengo el sig. codigo.. es algo parecido


1
2
3
4
5
6
7
8
9
10
11
12
13
14
long ll_result
oleobject lole_excel
TRY
    ls_archivo = "c:\datos\archivo.xlsx"
    lole_excel = create oleobject
	ll_result = lole_excel.ConnectToNewObject("excel.application")
	lole_excel.WorkBooks.Open( ls_archivo )
	lole_excel.DisplayAlerts = False
	lole_excel.worksheets(1).Activate
CATCH (Oleruntimeerror ole_err)
   SetPointer(Arrow!)
   f_mensaje("A", ole_err.text)
   DESTROY lole_excel
END TRY
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Como abrir archivos de Excel desde un botón de comando de un formulario

Publicado por Jose Francisco (166 intervenciones) el 25/05/2019 20:37:58
Gracias Leonardo , pero en casi todas las lineas me da el mensaje que "no se reconoce el verbo de comando".-
Slds.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Como abrir archivos de Excel desde un botón de comando de un formulario

Publicado por Leonardo Daniel A. (500 intervenciones) el 25/05/2019 23:37:38
Pero debes adaptarlo a Vfox... solo te lo puse como ejemplo

tu usas

loExcel.file.Open(m.lcfile)

creo que deberia ser algo asi

loExcel.WorkBooks.Open(m.lcfile)


busca en google Visual FoxPro VBA Excel y te dara resultados como estos:

http://fox.wikis.com/wc.dll?Wiki~ExcelAutomation

sobre todo en esta... ahi viene que debes usar WorkBooks.Open
http://www.victorespina.com.ve/wiki/index.php?title=Automatizacion_de_Excel_desde_VFP


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Como abrir archivos de Excel desde un botón de comando de un formulario

Publicado por Fidel José (657 intervenciones) el 26/05/2019 15:47:18
Puedes utilizar una rutina más general (abre cualquier archivo que tenga una aplicación asociada)
lcFile = GetFile("xlsx")

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
lcFile = GetFile("xlsx")
IF !EMPTY(m.lcFile)
	shell_Exec(m.lcFile)
ENDIF
 
 
PROCEDURE Shell_Exec
*--------------------------------------------
LPARAMETERS tcFileName, tcAction, tcParams,tlChangeDir
*********************************************
* tcFileName="\\ruta\nombreArchivo.extensión
* Sample Shell_Exec(m.lcFileName)
TRY 
	LOCAL lcExt,;
		lcMessage,;
		lDoit,;
		lcFolder,;
		loFso as Object,;
		loex AS Exception,;
		loResp AS Object

	lcFolder = FULLPATH("")
	loFso = NEWOBJECT("Scripting.FileSystemObject")
	
	loResp = NEWOBJECT("Empty")
	ADDPROPERTY(loResp,"nResponse",0)
	ADDPROPERTY(loResp,"failure",.f.)
	ADDPROPERTY(loResp,"FileExist",loFso.FileExists(m.tcFileName) )
	
	IF loResp.FileExist
		
		tcAction = EVL(m.tcAction,"Open")
		tcparams = EVL(m.tcParams,"")
		lcExt = JustExt(m.tcFileName)
		IF m.tlChangeDir
			lcPath = JUSTPATH(m.tcFileName)
			IF !EMPTY(m.lcPath) AND lofso.FolderExists(ADDBS(m.lcpath))

				CD &lcPath
			ENDIF 
		ENDIF 

		DECLARE INTEGER ShellExecute IN SHELL32.dll INTEGER nWinHandle,;
			STRING cOperation,;
			STRING cFileName,;
			STRING cParameters,;
			STRING cDirectory,;
			INTEGER nShowWindow
		DECLARE INTEGER FindWindow IN WIN32API STRING cNull,;
			STRING cWinName


		loResp.nResponse = ShellExecute(FindWindow(0,_SCREEN.Caption),tcAction,tcFileName,tcParams,SYS(2023),1)
		DO CASE
			CASE loResp.nResponse = 2
				lcMessage = "Invalid path or filename. No existe el archivo"
			CASE loResp.nResponse=8
				lcMessage = "No hay suficiente memoria para realizar la acción solicitada"
			CASE loResp.nResponse=11
				lcMessage = "El archivo no es ejecutable o está corrompido"
			CASE loResp.nResponse=31
				* Aparentemente ocurre cuando no encuentra
				* una aplicación asociada
				lcMessage = "No se encuentra una aplicación para "+m.lcExt
				
			CASE loResp.nResponse=33
				* VErificado para XLS,DOC,JPG,BMP
			CASE loResp.nResponse=42
				* Verificado para PDF,GIF,0MDI,MIP,NRI
			OTHERWISE 
			
		ENDCASE
	ENDIF 
CATCH TO loex
	loex.UserValue = PROGRAM()
	ShowError(loex)
FINALLY
	loFso = null
	IF m.tlChangeDir
		CD &lcFolder
	ENDIF 
	IF !EMPTY(m.lcMessage)
		loResp.Failure = .t.
		Messagebox(m.lcMessage)
	ENDIF 
ENDTRY 
RETURN loResp
ENDPROC 
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Como abrir archivos de Excel desde un botón de comando de un formulario

Publicado por Abel (286 intervenciones) el 26/05/2019 16:57:58
Hola José, tu codigo esta bien, solo debes modificar la línea 17;

Ahora tienes el siguiente código:
*loExcel.file.Open(m.lcfile)

Reemplaza por:
loExcel.Workbooks.Open(lcFile)

Eso es todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Como abrir archivos de Excel desde un botón de comando de un formulario

Publicado por José (166 intervenciones) el 27/05/2019 15:43:02
Ok muchísimas gracias a todos , haré las correcciones y lo probaré.
Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como abrir archivos de Excel desde un botón de comando de un formulario

Publicado por jose camilo (805 intervenciones) el 29/05/2019 05:53:02
Todo lo que necesitas es esto

1
2
3
4
5
6
7
8
9
loApp = CREATEOBJECT("Excel.Application")
IF VARTYPE(loApp) = "O"
   RELEASE loApp
   DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER hndWin, STRING cAction, STRING cFileName, STRING cParams, STRING cDir, INTEGER nShowWin
   cAction = "open"
   ShellExecute(0,cAction,"ExcelVentas.xls","","",1)
ELSE
   MESSAGEBOX("Excel no esta instalado asi que debe buscar el archivo ExcelVentas", 16,"JJ-system")
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar