Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problema TFileSaveAs no guarda (https://www.clubdelphi.com/foros/showthread.php?t=83330)

jonydread 05-06-2013 05:56:27

Problema TFileSaveAs no guarda
 
Amigos saludos,
tengo un problemilla sin resolver tengo un actionmanager donde agrege el TFileSaveAs lo que pasa es que no guarda el archivo o sea lo guarda al parecer no lo se aparece en los archivos recientes solamente
en eventos esta
Dialog - FileSaveAs1.SaveDialog
en propiedades
Dialog- FileSaveAs1.SaveDialog
se expande para dar opciones filter,defaultext, etc...
tengo todo eso configurado pero no logro saber porque no lo guarda
en el evento OnAccept verifico la ruta donde se guarda y aparece bien
este es el codigo del form
Código Delphi [-]
unit QRpreview;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, QRPrntr,quickrpt, ToolWin, ActnMan, ActnCtrls,XPActnCtrls, XPStyleActnCtrls,
  StdActns, ActnList, ImgList, ComCtrls, StdCtrls, Buttons, ExtCtrls,
  QRExport, QRPDFFilt;

type
  TPreview = class(TForm)
    QRPreview1: TQRPreview;
    ActionManager1: TActionManager;
    ImageList1: TImageList;
    FileSaveAs1: TFileSaveAs;
    FilePrintSetup1: TFilePrintSetup;
    ActionToolBar1: TActionToolBar;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FileSaveAs1Accept(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Preview: TPreview;

implementation

uses main, reporte;

{$R *.dfm}


procedure TPreview.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Mainform.Enabled := true;
end;

procedure TPreview.FileSaveAs1Accept(Sender: TObject);
begin
showmessage(FileSaveAs1.Dialog.FileName);
end;

end.

:confused::confused:

WkaymQ48 05-06-2013 09:02:29

¿Y que quieres que guarde? :confused: ... hasta donde yo se los diálogos como de abrir, "guardar como", etc ... solamente devuelven un a ruta y luego eres tu el que tiene que abrir/guardar el fichero usando esa ruta, pero ellos por si solos no hacen nada.

ecfisa 05-06-2013 09:10:56

Hola jonydread.

Te pongo un ejemplo muy simplificado para aclararte como es el funcionamiento:
Código Delphi [-]
...
implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  with FileOpen1 do
  begin
    Dialog.DefaultExt := '*.TXT';
    Dialog.Filter   := 'Archivos de texto (*.txt)|*.TXT';
    if not Assigned(OnAccept) then  // (por si no lo asignaste en diseño)
      FileOpen1.OnAccept :=  FileOpen1Accept;
  end;
  with FileSaveAs1 do
  begin
    Dialog.DefaultExt := '*.TXT';
    Dialog.Filter :=  'Archivos de texto (*.txt)|*.TXT';
    if not Assigned(OnAccept) then // idem
      FileSaveAs1.OnAccept := FileSaveAs1Accept;
  end;
  Memo1.Clear;
end;

procedure TForm1.FileOpen1Accept(Sender: TObject);
begin
  Memo1.Lines.LoadFromFile(FileOpen1.Dialog.FileName);
end;

procedure TForm1.FileSaveAs1Accept(Sender: TObject);
begin
  Memo1.Lines.SaveToFile(FileSaveAs1.Dialog.FileName);
end;
...

Saludos :)

Edito: No estaba el mensaje de WkaymQ48 mientras acomodaba este, pero nos referimos a lo mismo. ;)

jonydread 05-06-2013 14:27:15

estoy guardando un reporte tqpreview si me pueden explicar como realizarlo tengo los filtros pdf,xls,txt en el form de quickpreview, mientras probare como dice ecfisa.

gracias!

ecfisa 05-06-2013 14:57:12

Hola jonydread.

Revisa este artículo: Exporting Reports with QuickReport. Vas a encontrar varios artículos que te podrán ser útiles en: quickreport FAQS.

Tengo entendido que para expotar a .pdf es necesario tener la versión pro, que se compra aparte de la que viene con Delphi. Pero existen componentes de terceros free como por ejemplo [este]. Incluye código fuente y no lo he probado, seguramente buscando encuentres mas.

Saludos :)

jonydread 06-06-2013 05:42:49

exelente mi solucion estaba en donde colocar el codigo
esto lo tenia en ontypechangue y era en ocaccept me oriente tambien por este hilo http://www.clubdelphi.com/foros/showthread.php?t=22130
Solucion
Código Delphi [-]
procedure TPreview.FileSaveAs1Accept(Sender: TObject);
var
FName: string;
begin
FName:= ExtractFileName(FileSaveAs1.Dialog.FileName);
 Case FileSaveAs1.Dialog.FilterIndex of
       1: reporteform.QuickRep1.ExportToFilter(TQRPDFDocumentFilter.Create(FName));
       2: reporteform.QuickRep1.ExportToFilter(TQRXLSFilter.Create(FName));
       3: reporteform.QuickRep1.ExportToFilter(TQRAsciiExportFilter.Create(FName));
       4: reporteform.QuickRep1.ExportToFilter(TQRRTFExportFilter.Create(FName));
end;
showmessage(FileSaveAs1.Dialog.FileName);
end;

saludos y gracias!!


La franja horaria es GMT +2. Ahora son las 12:43:13.

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