问题已经解决,在FastReport 中写代码搞定。代码如下:
var
aa:Integer;
maxRow:Integer;
procedure Page1OnManualBuild(Sender: TfrxComponent);
var
DataSet: TfrxDataSet;
DataSet1: TfrxDataSet;
begin
aa:=1;
Engine.ShowBand(MasterData1);
DataSet := DetailData1.DataSet;
DataSet.First;
while (not DataSet.Eof) or ((aa-1) mod MaxRow<>0) do
begin
if DataSet.Eof then Engine.ShowBand(Child1)
else Engine.ShowBand(DetailData1);
DataSet.Next;
aa:=aa+1;
if (((aa-1) mod (MaxRow)=0) and (not DataSet.Eof)) then
begin
EngIne.Newpage;
EngIne.showband(MasterData1);
end;
end;
DataSet1 := MasterData1.DataSet;
DataSet1.next;
while (not DataSet1.Eof) do
begin
EngIne.Newpage;
EngIne.showband(MasterData1);
DataSet := DetailData1.DataSet;
DataSet.First;
aa:=1;
while (not DataSet.Eof) or ((aa-1) mod MaxRow<>0) do
begin
if DataSet.Eof then Engine.ShowBand(Child1)
else Engine.ShowBand(DetailData1);
DataSet.Next;
aa:=aa+1;
if (((aa-1) mod (MaxRow)=0) and (not DataSet.Eof)) then
begin
EngIne.Newpage;
EngIne.showband(MasterData1);
end;
end;
DataSet1.next;
end;
end;