LazReport: Bugfix for TfrDesignerForm.FileOpenExecute (TfrDesigner.OnLoadReport), by Soner. Issue #41807

Improvement over patch da080ca5
This commit is contained in:
Jesus Reyes Aguilar 2025-08-28 21:20:27 -06:00
parent 3484cf2162
commit 025b98aa06

View File

@ -3794,21 +3794,14 @@ end;
procedure TfrDesignerForm.FileOpenExecute(Sender: TObject); procedure TfrDesignerForm.FileOpenExecute(Sender: TObject);
var var
FRepName:string; FRepName:string;
aFilterIndex: integer;
begin begin
if CheckFileModified=mrCancel then if CheckFileModified=mrCancel then
exit; exit;
if Assigned(frDesignerComp) and Assigned(frDesignerComp.FOnLoadReport) then if Assigned(frDesignerComp) and Assigned(frDesignerComp.FOnLoadReport) then
begin aFilterIndex:=100 //Load with frDesignerComp.FOnLoadReport
ClearUndoBuffer;
FRepName:='';
frDesignerComp.FOnLoadReport(CurReport, FRepName);
FCurDocFileType := dtLazReportForm;
CurDocName := FRepName;
Modified := False;
CurPage := 0;
end
else else
with OpenDialog1 do with OpenDialog1 do
begin begin
@ -3827,22 +3820,36 @@ begin
FileName := CurDocName; FileName := CurDocName;
FilterIndex := 2; FilterIndex := 2;
if Execute then if Execute then
aFilterIndex:=FilterIndex
else
aFilterIndex:=-1; //Cancel
end;
if aFilterIndex>-1 then
begin begin
ClearUndoBuffer; ClearUndoBuffer;
CurDocName := OpenDialog1.FileName; case aFilterIndex of
case FilterIndex of
1: // fastreport form format 1: // fastreport form format
begin begin
CurDocName := OpenDialog1.FileName;
FLastOpenDirectory := ExtractFilePath(CurDocName); FLastOpenDirectory := ExtractFilePath(CurDocName);
CurReport.LoadFromFile(CurDocName); CurReport.LoadFromFile(CurDocName);
FCurDocFileType := dtFastReportForm; FCurDocFileType := dtFastReportForm;
end; end;
2: // lasreport form xml format 2: // lasreport form xml format
begin begin
CurDocName := OpenDialog1.FileName;
FLastOpenDirectory := ExtractFilePath(CurDocName); FLastOpenDirectory := ExtractFilePath(CurDocName);
CurReport.LoadFromXMLFile(CurDocName); CurReport.LoadFromXMLFile(CurDocName);
FCurDocFileType := dtLazReportForm; FCurDocFileType := dtLazReportForm;
end; end;
100: // Load with frDesignerComp.FOnLoadReport
begin
FRepName := '';
frDesignerComp.FOnLoadReport(CurReport, FRepName);
FCurDocFileType := dtLazReportForm;
CurDocName := FRepName;
end;
else else
raise Exception.Create('Unrecognized file format'); raise Exception.Create('Unrecognized file format');
end; end;
@ -3850,7 +3857,6 @@ begin
Modified := False; Modified := False;
CurPage := 0; // do all CurPage := 0; // do all
end; end;
end;
end; end;
procedure TfrDesignerForm.FilePreviewExecute(Sender: TObject); // preview procedure TfrDesignerForm.FilePreviewExecute(Sender: TObject); // preview