Browse Source

* Implement clear for report (bug ID 33286)

git-svn-id: trunk@38399 -
michael 7 years ago
parent
commit
18d7b29b2f
1 changed files with 30 additions and 10 deletions
  1. 30 10
      packages/fcl-report/src/fpreport.pp

+ 30 - 10
packages/fcl-report/src/fpreport.pp

@@ -1531,16 +1531,17 @@ type
   public
     constructor Create(AOwner: TComponent); override;
     destructor  Destroy; override;
-    Procedure   SaveDataToNames;
-    Procedure   RestoreDataFromNames;
-    procedure   WriteElement(AWriter: TFPReportStreamer; AOriginal: TFPReportElement = nil); override;
-    procedure   ReadElement(AReader: TFPReportStreamer); override;
-    procedure   AddPage(APage: TFPReportCustomPage);
-    procedure   RemovePage(APage: TFPReportCustomPage);
-    function    FindRecursive(const AName: string): TFPReportElement;
-    procedure   RunReport;
-    Procedure   ClearPreparedReport; virtual;
-    Function    Prepared : Boolean;
+    Procedure Clear;
+    Procedure SaveDataToNames;
+    Procedure RestoreDataFromNames;
+    procedure WriteElement(AWriter: TFPReportStreamer; AOriginal: TFPReportElement = nil); override;
+    procedure ReadElement(AReader: TFPReportStreamer); override;
+    procedure AddPage(APage: TFPReportCustomPage);
+    procedure RemovePage(APage: TFPReportCustomPage);
+    function  FindRecursive(const AName: string): TFPReportElement;
+    procedure RunReport;
+    Procedure ClearPreparedReport; virtual;
+    Function  Prepared : Boolean;
     Procedure StartDesigning; virtual;
     Procedure EndDesigning; virtual;
     procedure RenderReport(const AExporter: TFPReportExporter);
@@ -7506,6 +7507,25 @@ begin
   inherited Destroy;
 end;
 
+procedure TFPCustomReport.Clear;
+
+begin
+  // Variables
+  FRTCurPageIdx := -1;
+  FDateCreated := Now;
+  FTwoPass := False;
+  FIsFirstPass := False;
+  // Collections
+  FreeAndNil(FExpr); // Special case, recreated on run
+  FReportData.Clear;
+  While FPages.Count>0 do
+    RemovePage(Pages[FPages.Count-1]);
+  FPages.Clear;
+  ClearReferenceList;
+  FImages.Clear;
+  FVariables.Clear;
+end;
+
 procedure TFPCustomReport.SaveDataToNames;
 
 Var