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,29 +3820,42 @@ begin
FileName := CurDocName; FileName := CurDocName;
FilterIndex := 2; FilterIndex := 2;
if Execute then if Execute then
begin aFilterIndex:=FilterIndex
ClearUndoBuffer; else
CurDocName := OpenDialog1.FileName; aFilterIndex:=-1; //Cancel
case FilterIndex of end;
1: // fastreport form format
begin if aFilterIndex>-1 then
FLastOpenDirectory := ExtractFilePath(CurDocName); begin
CurReport.LoadFromFile(CurDocName); ClearUndoBuffer;
FCurDocFileType := dtFastReportForm; case aFilterIndex of
end; 1: // fastreport form format
2: // lasreport form xml format begin
begin CurDocName := OpenDialog1.FileName;
FLastOpenDirectory := ExtractFilePath(CurDocName); FLastOpenDirectory := ExtractFilePath(CurDocName);
CurReport.LoadFromXMLFile(CurDocName); CurReport.LoadFromFile(CurDocName);
FCurDocFileType := dtLazReportForm; FCurDocFileType := dtFastReportForm;
end; end;
else 2: // lasreport form xml format
raise Exception.Create('Unrecognized file format'); begin
end; CurDocName := OpenDialog1.FileName;
//FileModified := False; FLastOpenDirectory := ExtractFilePath(CurDocName);
Modified := False; CurReport.LoadFromXMLFile(CurDocName);
CurPage := 0; // do all FCurDocFileType := dtLazReportForm;
end;
100: // Load with frDesignerComp.FOnLoadReport
begin
FRepName := '';
frDesignerComp.FOnLoadReport(CurReport, FRepName);
FCurDocFileType := dtLazReportForm;
CurDocName := FRepName;
end;
else
raise Exception.Create('Unrecognized file format');
end; end;
//FileModified := False;
Modified := False;
CurPage := 0; // do all
end; end;
end; end;