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