Browse Source

* Add StartDesigning/EndDesigning calls, needed for OI to work correctly

git-svn-id: trunk@38361 -
michael 7 years ago
parent
commit
1568e68c95
1 changed files with 70 additions and 0 deletions
  1. 70 0
      packages/fcl-report/src/fpreport.pp

+ 70 - 0
packages/fcl-report/src/fpreport.pp

@@ -120,6 +120,7 @@ type
   // For color coding
   // For color coding
   TFPReportBandType       = (btUnknown,btPageHeader,btReportTitle,btColumnHeader,btDataHeader,btGroupHeader,btDataband,btGroupFooter,
   TFPReportBandType       = (btUnknown,btPageHeader,btReportTitle,btColumnHeader,btDataHeader,btGroupHeader,btDataband,btGroupFooter,
                              btDataFooter,btColumnFooter,btReportSummary,btPageFooter,btChild);
                              btDataFooter,btColumnFooter,btReportSummary,btPageFooter,btChild);
+  TFPReportBandTypes = Set of TFPReportBandType;
   TFPReportMemoOption     = (
   TFPReportMemoOption     = (
             moSuppressRepeated,
             moSuppressRepeated,
             moHideZeros,
             moHideZeros,
@@ -304,6 +305,8 @@ type
   end;
   end;
 
 
 
 
+  { TFPReportComponent }
+
   TFPReportComponent = class(TComponent)
   TFPReportComponent = class(TComponent)
   private
   private
     FReportState: TFPReportState;
     FReportState: TFPReportState;
@@ -316,9 +319,14 @@ type
     procedure StartRender; virtual;
     procedure StartRender; virtual;
     // called when the renderer ends its job on the report.
     // called when the renderer ends its job on the report.
     procedure EndRender; virtual;
     procedure EndRender; virtual;
+
   public
   public
     procedure WriteElement(AWriter: TFPReportStreamer; AOriginal: TFPReportElement = nil); virtual;
     procedure WriteElement(AWriter: TFPReportStreamer; AOriginal: TFPReportElement = nil); virtual;
     procedure ReadElement(AReader: TFPReportStreamer); virtual;
     procedure ReadElement(AReader: TFPReportStreamer); virtual;
+    // called when the designer starts editing this component .
+    Procedure StartDesigning; virtual;
+    // called when the designer ends editing this component .
+    Procedure EndDesigning; virtual;
     property ReportState: TFPReportState read FReportState;
     property ReportState: TFPReportState read FReportState;
   end;
   end;
 
 
@@ -715,6 +723,10 @@ type
     procedure RecalcLayout; override;
     procedure RecalcLayout; override;
   public
   public
     destructor  Destroy; override;
     destructor  Destroy; override;
+    // called when the designer starts editing this component .
+    Procedure StartDesigning; override;
+    // called when the designer ends editing this component .
+    Procedure EndDesigning; override;
     procedure   WriteElement(AWriter: TFPReportStreamer; AOriginal: TFPReportElement = nil); override;
     procedure   WriteElement(AWriter: TFPReportStreamer; AOriginal: TFPReportElement = nil); override;
     procedure   ReadElement(AReader: TFPReportStreamer); override;
     procedure   ReadElement(AReader: TFPReportStreamer); override;
     function    Equals(AElement: TFPReportElement): boolean; override;
     function    Equals(AElement: TFPReportElement): boolean; override;
@@ -1522,6 +1534,8 @@ type
     procedure   RemovePage(APage: TFPReportCustomPage);
     procedure   RemovePage(APage: TFPReportCustomPage);
     function    FindRecursive(const AName: string): TFPReportElement;
     function    FindRecursive(const AName: string): TFPReportElement;
     procedure   RunReport;
     procedure   RunReport;
+    Procedure StartDesigning; virtual;
+    Procedure EndDesigning; virtual;
     procedure   RenderReport(const AExporter: TFPReportExporter);
     procedure   RenderReport(const AExporter: TFPReportExporter);
     Property Variables : TFPReportVariables Read FVariables Write SetVariables;
     Property Variables : TFPReportVariables Read FVariables Write SetVariables;
     {$IFDEF gdebug}
     {$IFDEF gdebug}
@@ -5483,6 +5497,18 @@ begin
   FReportState := rsDesign;
   FReportState := rsDesign;
 end;
 end;
 
 
+procedure TFPReportComponent.StartDesigning;
+begin
+  SetDesigning(True,True);
+  FReportState:=rsDesign;
+end;
+
+procedure TFPReportComponent.EndDesigning;
+begin
+  SetDesigning(False,True);
+  FReportState:=rsDesign;
+end;
+
 procedure TFPReportComponent.WriteElement(AWriter: TFPReportStreamer; AOriginal: TFPReportElement);
 procedure TFPReportComponent.WriteElement(AWriter: TFPReportStreamer; AOriginal: TFPReportElement);
 begin
 begin
   AWriter.WriteString('Name', Name);
   AWriter.WriteString('Name', Name);
@@ -6451,6 +6477,28 @@ begin
   inherited Destroy;
   inherited Destroy;
 end;
 end;
 
 
+procedure TFPReportElementWithChildren.StartDesigning;
+
+Var
+  I : Integer;
+
+begin
+  inherited StartDesigning;
+  For I:=0 to ChildCount-1 do
+    Child[I].StartDesigning;
+end;
+
+procedure TFPReportElementWithChildren.EndDesigning;
+
+Var
+  I : Integer;
+
+begin
+  inherited EndDesigning;
+  For I:=0 to ChildCount-1 do
+    Child[I].EndDesigning;
+end;
+
 procedure TFPReportElementWithChildren.WriteElement(AWriter: TFPReportStreamer; AOriginal: TFPReportElement);
 procedure TFPReportElementWithChildren.WriteElement(AWriter: TFPReportStreamer; AOriginal: TFPReportElement);
 var
 var
   i: integer;
   i: integer;
@@ -7576,6 +7624,28 @@ begin
   DoAfterRenderReport;
   DoAfterRenderReport;
 end;
 end;
 
 
+procedure TFPCustomReport.StartDesigning;
+
+Var
+  I : Integer;
+
+begin
+  SetDesigning(True,True);
+  For I:=0 to PageCount-1 do
+    Pages[i].StartDesigning;
+end;
+
+procedure TFPCustomReport.EndDesigning;
+
+Var
+  I : Integer;
+
+begin
+  SetDesigning(False,True);
+  For I:=0 to PageCount-1 do
+    Pages[i].EndDesigning;
+end;
+
 function TFPCustomReport.FindRecursive(const AName: string): TFPReportElement;
 function TFPCustomReport.FindRecursive(const AName: string): TFPReportElement;
 var
 var
   p, b, c: integer;
   p, b, c: integer;