Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Delphi para la web (https://www.clubdelphi.com/foros/forumdisplay.php?f=51)
-   -   Save Archivo con Intraweb (https://www.clubdelphi.com/foros/showthread.php?t=96252)

mjjj 04-06-2023 17:06:21

Save Archivo con Intraweb
 
Buenos noches amigos del foro,
Estoy haciendo un programa para internet usando para esto intraweb y me gustaría su ayuda para resolver la creación de un archivo.

En la versión de win32 del programa crear un excel y lo descarga donde el usuario lo desee, pero con Intraweb no logre que funcione, utilizando los típicos componentes TFileSaveDialog para seleccionar la ruta.

Favor me sirve cualquier idea.

Casimiro Notevi 04-06-2023 17:42:09

¿Cómo lo haces?

mjjj 04-06-2023 18:30:42

En la versión win32 lo hago así y funciona perfecto.
Necesito hacer lo mismo pero en un aplicativo de Intraweb.

Código Delphi [-]
FDCONNECTion1.close;
fdconnection1.open;

fdquery1.Close;
fdquery1.Open();

if fdquery1.IsEmpty = FALSE then
try
Report := TFlexCelReport.Create(true);

if not SaveDialog1.Execute then exit;

Report.AddTable('fdquery1',fdquery1, TRecordCountMode.SlowCount, TDisposeMode.DoNotDispose);

  Report.SetValue('empresa',combobox7.text); // .SetCellValue(1, 1, statusbar1.panels[2].Text);
  Report.SetValue('ejercicio',edit9.Text); // .SetCellValue(1, 1, statusbar1.panels[2].Text);
  Report.SetValue('periodo',combobox8.Text); // .SetCellValue(1, 1, statusbar1.panels[2].Text);
  Report.SetValue('fecha',datetimetostr(now)); // .SetCellValue(1, 1, statusbar1.panels[2].Text);

  Report.Run(ExtractFilePath(application.ExeName)+'\EERR_SAP.xlsx', SaveDialog1.FileName);

  if MessageDlg('Se ha exportado correctamente. ¿Desea abrir el archivo generado?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
    ShellExecute(0, 'open', PCHAR(SaveDialog1.FileName), nil, nil, SW_SHOWNORMAL);
  end;
  finally

FDCONNECTion1.close;
  end;

mjjj 05-06-2023 18:32:23

Estimados, alguna idea de como puedo resolver esto ??
Será que Intraweb no esta hecho para resolver este tipo de problemas ??

Casimiro Notevi 05-06-2023 18:37:21

¿Pero te da algún error, mensaje, algo? ¿has seguido el código y has visto cuál es el código de error que devuelve?

mjjj 05-06-2023 18:53:15

No da error, simplemente no hace nada.

Casimiro Notevi 05-06-2023 20:46:24

Shellexecute devuelve un código, mira a ver cuál es.

mjjj 10-06-2023 06:13:04

Estuve averiguando, y es un problema que estas sentencias se ejecutan desde el lado del servidor, por eso nunca iba a funcionar.
Ahora bien, tampoco he podido resolverlo, pero si entiendo que se debe utilizar algo así:

Código:

webapplication.SendFile('c:\datos\');
Alguna idea de como pasar el directorio de destino en el cliente ??

Casimiro Notevi 10-06-2023 13:06:55

Seguramente debas descargar primero el fichero al equipo local y guardarlo donde quieras.

mjjj 10-06-2023 17:50:10

Gracias Casimiro.
Tienes algún ejemplo de código de como se debe hacer esto ??
Ni se por donde empezar :(

Casimiro Notevi 10-06-2023 19:15:46

¿Algo así?
Código Delphi [-]
uses
  IWDownload;

procedure DescargarArchivoIntraWeb(AContext: TIWBaseHTMLComponent; const URL, RutaDestino: string);
var
  Download: TIWDownload;
begin
  Download := TIWDownload.Create(AContext);
  try
    Download.Path := RutaDestino;
    Download.URL := URL;
    Download.Render(AContext);
  finally
    Download.Free;
  end;
end;


La franja horaria es GMT +2. Ahora son las 07:12:17.

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