* Fix bug #0033656: scan report for data loops and add them to ReportData

git-svn-id: trunk@38905 -
This commit is contained in:
michael 2018-05-05 09:36:05 +00:00
parent c530e031b1
commit da133b2456

View File

@ -1610,6 +1610,7 @@ type
function CreateReportData: TFPReportDataCollection; virtual;
function CreateLayouter : TFPReportLayouter; virtual;
procedure CollectReportData; virtual;
procedure RestoreDefaultVariables; virtual;
procedure DoPrepareReport; virtual;
procedure DoBeginReport; virtual;
@ -8757,10 +8758,39 @@ begin
end;
end;
procedure TFPCustomReport.CollectReportData;
Procedure CheckData(D : TFPReportData);
begin
if (D<>Nil) and (ReportData.FindReportDataItem(D)=Nil) then
ReportData.AddReportData(D);
end;
Var
I,J : integer;
P : TFPReportCustomPage;
B : TFPReportCustomBandWithData;
begin
For i:=0 to PageCount-1 do
begin
P:=Pages[i];
CheckData(P.Data);
For J:=0 to P.BandCount-1 do
if (P.Bands[J] is TFPReportCustomBandWithData) then
begin
B:=TFPReportCustomBandWithData(P.Bands[J]);
CheckData(B.Data);
end;
end;
end;
procedure TFPCustomReport.RunReport;
begin
DoBeginReport;
StartLayout;
CollectReportData;
Validate;
FExpr := TFPexpressionParser.Create(nil);
try