Tengo un archivo de excel con información que deseo mostrar ahí mismo, dándole click a un botón en power builder. Espero que me puedan ayudar. Solo necesito abrir el archivo ya existente. Encontré que puedo utilizar ShellExecute() pero no se como utilizarlo.
1 Respuesta
Respuesta de ElPater --
1
1
ElPater --, Hay 2 leyes para triunfar en esta vida. La 1ª es "No cuentes...
El ShellExecute lo que te hará es abrirte el Microsoft Excel con el fichero abierto. Es decir, como si le dieras doble-click al fichero en el Explorador de Windows. Para utilizar el ShellExecute, ve a declarar una función externa (donde se declaran las variables locales, globales, etc... ahí se declaran las ExternalFunctions) y pon: //------------------------------------------------------------------ FUNCTION long ShellExecute(ulong ihwnd,string lpszOp,string lpszFile,string lpszParams, string lpszDir,int wShowCmd ) LIBRARY "shell32.dll" ALIAS FOR "ShellExecuteW" //------------------------------------------------------------------ Ahora en el botón que quieres utilizar pon: Long lRetorno String sError, sNulo SetNull(sNulo) // Se ejecuta la ruta pasada. lRetorno = ShellExecute(Handle(this), sNulo, "C:\MiFichero.xls", sNulo, sNulo, 3) //El último argumento es el estilo de la ventana: //#define SW_HIDE 0 //#define SW_SHOWNORMAL 1 //#define SW_NORMAL 1 //#define SW_SHOWMINIMIZED 2 //#define SW_SHOWMAXIMIZED 3 //#define SW_MAXIMIZE 3 //#define SW_SHOWNOACTIVATE 4 //#define SW_SHOW 5 //#define SW_MINIMIZE 6 //#define SW_SHOWMINNOACTIVATE 7 //#define SW_SHOWNA 8 //#define SW_RESTORE 9 //#define SW_SHOWDEFAULT 10 //#define SW_MAX 10 IF lRetorno <= 32 THEN // Hay error CHOOSE CASE lRetorno CASE 2 sError = "Fichero no encontrado" CASE 3 sError = "Ruta no encontrada" CASE 5 sError = "Acceso denegado" CASE 8 sError = "Fuera de memoria" CASE 32 sError = "DLL no encontrada" CASE 26 sError = "A sharing violation occurred" CASE 27 sError = "Asociación a fichero no válida o incompleta" CASE 28 sError = "DDE Time out" CASE 29 sError = "DDE transaction failed" CASE 30 sError = "DDE busy" CASE 31 sError = "No existe ninguna asociación a la extensión del fichero" CASE 11 sError = "Invalid EXE file or error in EXE image" CASE ELSE sError = "Error desconocido" END CHOOSE Messagebox("Error..." + String(lRetorno),sError) Return -1 END IF Con esto puedes hacer que el botón te abra el fichero que tu quieras. Como si es un mp3, un doc, un pdf, o un avi. El sistema lo ejecutará con lo que tenga predefinido para abrirlo. Lo recomendable es que te lleves este código a una función global, para poder llamarla desde donde quieras, y puedas abrir todo lo que quieras ;) Ahora, si lo que quieres hacer es abrir el Excel dentro de unas de tus ventanas de PowerBuilder, ahí incrustrado, hay que hacer otra cosa.