mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 13:06:18 +02:00
* Fix failing test
git-svn-id: trunk@37362 -
This commit is contained in:
parent
5c447cba50
commit
96aa33cfd9
@ -798,6 +798,7 @@ type
|
|||||||
procedure RecalcLayout; override;
|
procedure RecalcLayout; override;
|
||||||
procedure CalcPrintPosition; virtual;
|
procedure CalcPrintPosition; virtual;
|
||||||
function PrepareObject(aRTParent: TFPReportElement): TFPReportElement; override;
|
function PrepareObject(aRTParent: TFPReportElement): TFPReportElement; override;
|
||||||
|
procedure PrepareObjects(aRTParent: TFPReportElement); override;
|
||||||
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
||||||
procedure DoWriteLocalProperties(AWriter: TFPReportStreamer; AOriginal: TFPReportElement = nil); override;
|
procedure DoWriteLocalProperties(AWriter: TFPReportStreamer; AOriginal: TFPReportElement = nil); override;
|
||||||
public
|
public
|
||||||
@ -885,6 +886,7 @@ type
|
|||||||
Class Function ReportBandType : TFPReportBandType; virtual;
|
Class Function ReportBandType : TFPReportBandType; virtual;
|
||||||
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;
|
||||||
|
property Page : TFPReportCustomPage read GetReportPage;
|
||||||
end;
|
end;
|
||||||
TFPReportCustomBandClass = Class of TFPReportCustomBand;
|
TFPReportCustomBandClass = Class of TFPReportCustomBand;
|
||||||
|
|
||||||
@ -1416,6 +1418,7 @@ type
|
|||||||
FPerDesignerPageCount: array of UInt32;
|
FPerDesignerPageCount: array of UInt32;
|
||||||
FUsePageCountMarker: Boolean;
|
FUsePageCountMarker: Boolean;
|
||||||
FVariables : TFPReportVariables;
|
FVariables : TFPReportVariables;
|
||||||
|
FDataAdded : TFPList;
|
||||||
function GetPage(AIndex: integer): TFPReportCustomPage;
|
function GetPage(AIndex: integer): TFPReportCustomPage;
|
||||||
function GetPageCount: integer; { this is designer page count }
|
function GetPageCount: integer; { this is designer page count }
|
||||||
function GetRenderedPageCount: integer;
|
function GetRenderedPageCount: integer;
|
||||||
@ -6494,6 +6497,12 @@ begin
|
|||||||
Result := TFPReportCustomPage.Create(nil);
|
Result := TFPReportCustomPage.Create(nil);
|
||||||
Result.Assign(self);
|
Result.Assign(self);
|
||||||
Result.CreateRTLayout;
|
Result.CreateRTLayout;
|
||||||
|
PrepareObjects(aRTParent);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TFPReportCustomPage.PrepareObjects(aRTParent: TFPReportElement);
|
||||||
|
begin
|
||||||
|
// inherited PrepareObjects(aRTParent);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFPReportCustomPage.MarginsChanged;
|
procedure TFPReportCustomPage.MarginsChanged;
|
||||||
@ -7025,12 +7034,14 @@ begin
|
|||||||
FBands:=Nil;
|
FBands:=Nil;
|
||||||
L:=CreateLayouter;
|
L:=CreateLayouter;
|
||||||
try
|
try
|
||||||
|
FDataAdded:=TFPList.Create;
|
||||||
FBands:=TBandList.Create;
|
FBands:=TBandList.Create;
|
||||||
SetLength(FPerDesignerPageCount, PageCount);
|
SetLength(FPerDesignerPageCount, PageCount);
|
||||||
L.Execute(Self);
|
L.Execute(Self);
|
||||||
finally
|
finally
|
||||||
SetLength(FPerDesignerPageCount, 0);
|
SetLength(FPerDesignerPageCount, 0);
|
||||||
Fbands.Free;
|
FreeAndNil(FDataAdded);
|
||||||
|
FreeAndNil(Fbands);
|
||||||
L.Free;
|
L.Free;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -7126,25 +7137,29 @@ begin
|
|||||||
F:='';
|
F:='';
|
||||||
For I:=0 to FExpr.Identifiers.Count-1 do
|
For I:=0 to FExpr.Identifiers.Count-1 do
|
||||||
f:=f+FExpr.Identifiers[i].Name+'; ';
|
f:=f+FExpr.Identifiers[i].Name+'; ';
|
||||||
for i := 0 to AData.DataFields.Count-1 do
|
if FDataAdded.IndexOf(AData)=-1 then
|
||||||
begin
|
begin
|
||||||
d := AData.Name;
|
for i := 0 to AData.DataFields.Count-1 do
|
||||||
f := AData.DataFields[i].FieldName;
|
|
||||||
r := ReportKindToResultType(AData.DataFields[i].FieldKind);
|
|
||||||
if d <> '' then
|
|
||||||
begin
|
begin
|
||||||
{$ifdef gdebug}
|
d := AData.Name;
|
||||||
writeln('registering (dotted name)... '+ d+'.'+f);
|
f := AData.DataFields[i].FieldName;
|
||||||
{$endif}
|
r := ReportKindToResultType(AData.DataFields[i].FieldKind);
|
||||||
FExpr.Identifiers.AddVariable(d+'.'+f, r, @DoGetExpressionVariableValue);
|
if d <> '' then
|
||||||
end
|
begin
|
||||||
else
|
{$ifdef gdebug}
|
||||||
begin
|
writeln('registering (dotted name)... '+ d+'.'+f);
|
||||||
{$ifdef gdebug}
|
{$endif}
|
||||||
writeln('registering... '+ f);
|
FExpr.Identifiers.AddVariable(d+'.'+f, r, @DoGetExpressionVariableValue);
|
||||||
{$endif}
|
end
|
||||||
FExpr.Identifiers.AddVariable(f, r, @DoGetExpressionVariableValue);
|
else
|
||||||
|
begin
|
||||||
|
{$ifdef gdebug}
|
||||||
|
writeln('registering... '+ f);
|
||||||
|
{$endif}
|
||||||
|
FExpr.Identifiers.AddVariable(f, r, @DoGetExpressionVariableValue);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
FDataAdded.Add(AData);
|
||||||
end;
|
end;
|
||||||
if APage.Data = AData then
|
if APage.Data = AData then
|
||||||
begin
|
begin
|
||||||
|
@ -64,7 +64,7 @@ type
|
|||||||
FPrepareObjectsCalled: integer;
|
FPrepareObjectsCalled: integer;
|
||||||
procedure SetupPage;
|
procedure SetupPage;
|
||||||
protected
|
protected
|
||||||
procedure PrepareObjects; override;
|
procedure PrepareObjects(aRTParent: TFPReportElement); override;
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
procedure ResetChanged;
|
procedure ResetChanged;
|
||||||
@ -77,7 +77,7 @@ type
|
|||||||
private
|
private
|
||||||
FPrepareObjectsCalled: integer;
|
FPrepareObjectsCalled: integer;
|
||||||
protected
|
protected
|
||||||
procedure PrepareObjects; override;
|
procedure PrepareObjects(aRTParent: TFPReportElement); override;
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
end;
|
end;
|
||||||
@ -87,7 +87,7 @@ type
|
|||||||
private
|
private
|
||||||
FPrepareObjectsCalled: integer;
|
FPrepareObjectsCalled: integer;
|
||||||
protected
|
protected
|
||||||
procedure PrepareObjects; override;
|
procedure PrepareObjects(aRTParent: TFPReportElement); override;
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
end;
|
end;
|
||||||
@ -1983,10 +1983,11 @@ begin
|
|||||||
Margins.Bottom := 20;
|
Margins.Bottom := 20;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMyFPReportPage.PrepareObjects;
|
procedure TMyFPReportPage.PrepareObjects(aRTParent: TFPReportElement);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Inc(FPrepareObjectsCalled);
|
Inc(FPrepareObjectsCalled);
|
||||||
inherited PrepareObjects;
|
inherited PrepareObjects(aRTParent);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
constructor TMyFPReportPage.Create(AOwner: TComponent);
|
constructor TMyFPReportPage.Create(AOwner: TComponent);
|
||||||
@ -2008,10 +2009,11 @@ end;
|
|||||||
|
|
||||||
{ TMyReportTitleBand }
|
{ TMyReportTitleBand }
|
||||||
|
|
||||||
procedure TMyReportTitleBand.PrepareObjects;
|
procedure TMyReportTitleBand.PrepareObjects(aRTParent: TFPReportElement);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Inc(FPrepareObjectsCalled);
|
Inc(FPrepareObjectsCalled);
|
||||||
inherited PrepareObjects;
|
inherited PrepareObjects(aRTParent);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
constructor TMyReportTitleBand.Create(AOwner: TComponent);
|
constructor TMyReportTitleBand.Create(AOwner: TComponent);
|
||||||
@ -2022,10 +2024,11 @@ end;
|
|||||||
|
|
||||||
{ TMyDataBand }
|
{ TMyDataBand }
|
||||||
|
|
||||||
procedure TMyDataBand.PrepareObjects;
|
procedure TMyDataBand.PrepareObjects(aRTParent: TFPReportElement);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Inc(FPrepareObjectsCalled);
|
Inc(FPrepareObjectsCalled);
|
||||||
inherited PrepareObjects;
|
inherited PrepareObjects(aRTParent);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
constructor TMyDataBand.Create(AOwner: TComponent);
|
constructor TMyDataBand.Create(AOwner: TComponent);
|
||||||
@ -2801,14 +2804,14 @@ begin
|
|||||||
p.Name := 'Page3';
|
p.Name := 'Page3';
|
||||||
p.Data := Data;
|
p.Data := Data;
|
||||||
|
|
||||||
AssertEquals('Failed on 1', TMyFPReportPage(Report.Pages[0]).FPrepareObjectsCalled, 0);
|
AssertEquals('Failed on 1', 0, TMyFPReportPage(Report.Pages[0]).FPrepareObjectsCalled);
|
||||||
AssertEquals('Failed on 2', TMyFPReportPage(Report.Pages[1]).FPrepareObjectsCalled, 0);
|
AssertEquals('Failed on 2', 0, TMyFPReportPage(Report.Pages[1]).FPrepareObjectsCalled);
|
||||||
AssertEquals('Failed on 3', TMyFPReportPage(Report.Pages[2]).FPrepareObjectsCalled, 0);
|
AssertEquals('Failed on 3', 0, TMyFPReportPage(Report.Pages[2]).FPrepareObjectsCalled);
|
||||||
|
|
||||||
Report.RunReport;
|
Report.RunReport;
|
||||||
AssertEquals('Failed on 4', TMyFPReportPage(Report.Pages[0]).FPrepareObjectsCalled, 1);
|
AssertEquals('Failed on 4', 1, TMyFPReportPage(Report.Pages[0]).FPrepareObjectsCalled);
|
||||||
AssertEquals('Failed on 5', TMyFPReportPage(Report.Pages[1]).FPrepareObjectsCalled, 1);
|
AssertEquals('Failed on 5', 1, TMyFPReportPage(Report.Pages[1]).FPrepareObjectsCalled);
|
||||||
AssertEquals('Failed on 6', TMyFPReportPage(Report.Pages[2]).FPrepareObjectsCalled, 1);
|
AssertEquals('Failed on 6', 1, TMyFPReportPage(Report.Pages[2]).FPrepareObjectsCalled);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TTestCustomReport.TestBandPrepareObjects;
|
procedure TTestCustomReport.TestBandPrepareObjects;
|
||||||
|
@ -32,19 +32,14 @@
|
|||||||
<RunParams>
|
<RunParams>
|
||||||
<local>
|
<local>
|
||||||
<FormatVersion Value="1"/>
|
<FormatVersion Value="1"/>
|
||||||
|
<CommandLineParams Value="--suite=TTestCustomReport.TestPagePrepareObjects"/>
|
||||||
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||||
</local>
|
</local>
|
||||||
</RunParams>
|
</RunParams>
|
||||||
<RequiredPackages Count="3">
|
<RequiredPackages Count="1">
|
||||||
<Item1>
|
<Item1>
|
||||||
<PackageName Value="fclreport"/>
|
|
||||||
</Item1>
|
|
||||||
<Item2>
|
|
||||||
<PackageName Value="FPCUnitConsoleRunner"/>
|
|
||||||
</Item2>
|
|
||||||
<Item3>
|
|
||||||
<PackageName Value="FCL"/>
|
<PackageName Value="FCL"/>
|
||||||
</Item3>
|
</Item1>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="5">
|
<Units Count="5">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
@ -75,7 +70,7 @@
|
|||||||
<Filename Value="testfpreport"/>
|
<Filename Value="testfpreport"/>
|
||||||
</Target>
|
</Target>
|
||||||
<SearchPaths>
|
<SearchPaths>
|
||||||
<OtherUnitFiles Value="$(fptest)/src;$(fptest)/3rdparty/epiktimer"/>
|
<OtherUnitFiles Value="../src"/>
|
||||||
<UnitOutputDirectory Value="units"/>
|
<UnitOutputDirectory Value="units"/>
|
||||||
</SearchPaths>
|
</SearchPaths>
|
||||||
<Parsing>
|
<Parsing>
|
||||||
|
Loading…
Reference in New Issue
Block a user