fastreport固定行分页

var
  ChildDataLine : Integer;

// 子数据打印完一项时
procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
begin
  ChildDataLine := <line> mod 4;
end;

// 某项主数据的子数据打印完后准备打印主数据的最后页时
procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
var
  I :Integer;
begin
  if (ChildDataLine>0) and (ChildDataLine<4) then    // 子数据数量不是4的倍数
  begin
    I := 4 - ChildDataLine;
    while I>0 do                // 填充空白子数据
    begin
      Engine.ShowBand(Child2);  // Child2 设计空白与子数据块相同高度、边框
      Dec(I);
    end;
  end;
end;

// 子数据打印前
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  // 子数据 不是第一页(也不是最后一页),刚刚打印的是否是4的倍数行,是则新页
  if (<line> >1) and ((<line> -1) mod 4 =0) then
  begin
    Engine.ShowBand(Child1); // 主数据的后面部份
    Engine.NewPage;          // 新页
    Engine.ShowBand(Child1); // 主数据的后面部份
  end;
  // 注:
  // 主数据的前面数据 在第一条子数据时打印的是 GroupHeader
  // 主数据的后面数据 最后页打印的是 GroupFooter

end;

==================================================================

var
  PageLine: integer;      
  PageMaxRow: integer=10; 

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  PageLine := <line> mod PageMaxRow;
  if (PageLine = 1) and (<line> > 1) then
    Engine.newpage;
end; 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值