Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Abrir documento con nombre especifico. (https://www.clubdelphi.com/foros/showthread.php?t=62391)

BuRtOn 19-12-2008 21:59:31

Abrir documento con nombre especifico.
 
Saludos amigos, mire lo que necesito es lo siguiente:

Tengo un Edit y un Boton.

Existe una carpeta con muchas hojas de calculo en excel , Reporte1, Reporte2.....lo que se busca es que para facilidad al usuario de no ponerce a buscar en 100000 hojas de calculo que existan la que el necesita, entonces se crea el edit, para que coloque el nombre de la hoja de calculo a buscar...


[Reporte1] ---> Edit

[Buscar] ---> Boton

Resultado: se tiene que ejecutar y abrir el Reporte1.xls....


eso es todo lo que deseo hacer, intente con este codigo y con esta logica pero no me funciona:

Código Delphi [-]
procedure TfrmReportes.LbSpeedButton3Click(Sender: TObject);
begin
If FileExists("D:\Giros\'+edtBusqueda.text+'.xls")= True
begin
 shellexecute(Handle, 'open', '+edtBusqueda+'.xls', '', '', SW_show);
end;


Pero no me funciona, asi que les agradezco enormemente si alguien pueda colaborar con su conocimiento.Gracias.

dec 19-12-2008 22:27:08

Hola,

¿Qué es lo que no funciona? ¿Obtienes algún mensaje de error? Yo diría que, para empezar, la sintaxis no es válida, puesto que mezclas comillas simples y dobles. Algo así creo que debería "funcionar":

Código Delphi [-]
procedure TfrmReportes.LbSpeedButton3Click(Sender: TObject);
begin
If FileExists('D:\Giros\'+edtBusqueda.text+'.xls')= True
begin
 shellexecute(Handle, 'open', '+edtBusqueda+'.xls', '', '', SW_show);
end;

Pero, otra cosa es que exista el archivo en cuestión... así que tienes que decir qué es lo que no te funciona y después ya veremos. ;)

BuRtOn 19-12-2008 22:32:42

Hola dec, si la sintaxis estaba mal, pero ya la habia corregido, pero no me ejecuta nada, en pocas palabras quedaria asi el codigo:

Código Delphi [-]
procedure TfrmReportes.LbSpeedButton3Click(Sender: TObject);
begin
  If FileExists("D:\Giros\'+edtBusqueda.text+'.xls") = True
  begin 
    shellexecute(Handle, 'open', '+edtBusqueda+'.xls', '', '', SW_show);
  end else 
  begin 
    // mensaje: no existe un archivo con este nombre
  end;

solo que no funciona....

BuRtOn 19-12-2008 22:40:07

Ejecuta, pero no sucede nada....ya estoy estrezado.....:(....es que dec parte del codigo del shellexecute , no se si la sintaxis está bien o mal, o la sintaxis logica que llamamos nostros....se supone que el shellexecute debe ejecutar el archivo que yo deseo, el que escribi en el edit...

dec 19-12-2008 22:41:14

Hola,

Llama la atención que usas una ruta absoluta para comprobar si el archivo existe, pero, a la hora de ejecutarlo sólo proporcionas una ruta "relativa" (el nombre del archivo). Tal vez por eso no funciona, simplemente. Sea como sea igual te interesa conocer el resultado de la función "ShellExecute()", para actuar en consecuencia.

BuRtOn 19-12-2008 22:41:31

Uso una ruta, por que alli es donde se van a almacenar todos los archivos .xls.......y el nombre pues para llamar al archivo que yo estoy buscando...

dec 19-12-2008 22:43:48

Hola,

Pero, lo mismo que para comprobar la existencia del archivo usas una ruta absoluta, no sólo el nombre del archivo, en "ShellExecute()" debes también hacer lo propio. En realidad debes usar la misma ruta en ambos casos, de modo que, para empezar, podrías escribir algo así:

Código Delphi [-]
procedure TfrmReportes.LbSpeedButton3Click(Sender: TObject);
var
  filePath: String;
begin
  filePath := 'D:\Giros\'+edtBusqueda.text+'.xls';

  If FileExists(filePath) then begin
   shellexecute(Handle, 'open', PChar(filePath), '', '', SW_show);
  end;

end;

Caral 19-12-2008 22:47:17

Hola
Código Delphi [-]
procedure TfrmReportes.LbSpeedButton3Click(Sender: TObject);
begin
If FileExists('D:\Giros\'+edtBusqueda.text+'.xls')= True
begin
 shellexecute(Handle, 'open', +edtBusqueda.text+'.xls', '', '', SW_show);
end;
Saludos

BuRtOn 19-12-2008 23:07:53

Saludos, jeje , caral el codigo que yo tenia no funciono, creo que lo que Dec me dijo de crear una variable de ruta si funciono, problema listo y solucionado, gracias amigos por su colaboración , espero algun dia ser como ustedes de pilos en delphi....


La franja horaria es GMT +2. Ahora son las 16:29:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi