FoxPro/Visual FoxPro - Abrir PDF

 
Vista:
sin imagen de perfil
Val: 6
Ha disminuido su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Abrir PDF

Publicado por Silvia (2 intervenciones) el 05/05/2017 01:05:42
Necesito ayuda, tengo una aplicación en VFP8 que corre sobre Window 10. Esta aplicación tiene una rutina que abre un archivo PDF con Adobe XI Ver 11.
En el cliente tengo Windows 7 y Adobe 9 Ver. 9.4.0 y la rutina no funciona. Será un problema de versiones? Si genero la aplicación en el cliente funcionara?
Gracias por su ayuda.

Rutina

1
2
3
4
5
6
7
8
9
10
11
DECLARE INTEGER ShellExecute IN "Shell32.dll" ;
INTEGER hwnd, ;
STRING lpVerb, ;
STRING lpFile, ;
STRING lpParameters, ;
STRING lpDirectory, ;
LONG nShowCmd
 
lcfile = LTRIM(DonarSolicitud.SolImagenPdf)
* Open PDF file
=Shellexecute(0,"Open", lcfile, "","",3)

Silvia
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
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

Abrir PDF

Publicado por Fidel José (657 intervenciones) el 05/05/2017 02:16:53
Fijate si te sirve esta rutina (es bastante parecido a lo que hacés, pero tiene más control)

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
PROCEDURE Shell_Exec
*--------------------------------------------
LPARAMETERS tcFileName, tcAction, tcParams
*********************************************
* By Gustavo Crochenci
*********************************************
* tcFileName="\\ruta\nombreArchivo.extensión
* Sample Shell_Exec(m.lcFileName)
TRY 
	LOCAL lcExt,;
		lcMessage,;
		lDoit,;
		loFso as Object,;
		loex AS Exception,;
		loResp AS Object

	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)


		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=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
		ENDCASE
	ENDIF 
CATCH TO loex
	loex.UserValue = PROGRAM()
	* ShowError(loex) && rutina que muestra el error capturado
FINALLY
	loFso = null
	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
sin imagen de perfil
Val: 6
Ha disminuido su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Abrir PDF

Publicado por Silvia (2 intervenciones) el 05/05/2017 14:33:13
Gracias José por tu ayuda, voy a probarlo la rutina en el Cliente y despues te comento si pude solucionar el problema!!! Silvia
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