主要band有 report title page title MasterDate band child1 //用不隶属关系 footer;//此footer要设为不可见的,不能有汇总项, 汇总项用pagefooter 或reportsum 来做,pagefooter为每页小计,reportsum为报表合计。加一个子Band(名称为child1),在该子Band上画上一行与你的记录行左对齐的空格(memo为空)行;再加一个footer Band,onBeforePrint里写上: while Engine.FreeSpace> 指定高度 do Engine.ShowBand(Child1);
procedure Page1OnManualBuild(Sender: TfrxComponent); var DataSet: TfrxDataSet; begin DataSet := MasterData1.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(MasterData1); DataSet.Next; inc(aa); if (((aa-1) mod (MaxRow)=0) and (not DataSet.Eof)) then EngIne.Newpage; end; end;begin aa:=1; maxRow:=40; //每页最大行数 end.
report title
page title
MasterDate band
child1 //用不隶属关系
footer;//此footer要设为不可见的,不能有汇总项,
汇总项用pagefooter 或reportsum 来做,pagefooter为每页小计,reportsum为报表合计。加一个子Band(名称为child1),在该子Band上画上一行与你的记录行左对齐的空格(memo为空)行;再加一个footer Band,onBeforePrint里写上:
while Engine.FreeSpace> 指定高度 do
Engine.ShowBand(Child1);
2.生成Page事件。
3.添加代码。var
aa:Integer;
maxRow:Integer;
procedure Page1OnManualBuild(Sender: TfrxComponent);
var
DataSet: TfrxDataSet;
begin
DataSet := MasterData1.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(MasterData1);
DataSet.Next;
inc(aa);
if (((aa-1) mod (MaxRow)=0) and (not DataSet.Eof)) then EngIne.Newpage;
end;
end;begin
aa:=1;
maxRow:=40; //每页最大行数
end.