FastReport如实现打印固定行数,不足补打空白行(转)

看了网上的一些资料,发现了方法,但是描述都不是很详细,也至于每次都无法实现,只能在数据集中做补空行处理。今天终于弄通了,贴出方法,以备后续之用。

1. <1>在报表上加一个Child(在控件设计器中名称叫“子(W)”).其Name取名叫BlankBand。

   <2>此Band就是我们要添加的空行(若你的报表明细中有表格线,明细Band(如  DetailData中也有表格线,请在添加的BlankBand中也照样添加好表格线)。

          Band的高度设置为明细Band的高度。

  <3>.经过<2>的设置后,此Band的名称在报表中显示为: Child:BlankBand

 

2.在报表上加一个Footer 的Band(不是PageFooter)。(若你的报表不需要此Footer,可以将此BAND的高度弄成0).

  添加此Band的理由:需要利用此Footer的OnBeforePrint事件计算补空行。

 

3.在Footer的Band的OnBeforePrint事件中写入动态添加空行的代码:

 

procedure Footer1OnBeforePrint(Sender: TfrxComponent);
begin
 while (engine.freespace-8.7 >=0.6) and (engine.freespace<29.70) do   //lybingyu我试验成功时没有添加 and (engine.freespace<29.70)  条件
   engine.showband(blankband);

end;

 

 //说明:

// 1.  8.7高度为为报表中的PageFooter的高度,因为报表在打印Footer时,PageFooter还没打印,所以,在计算时得让工作引擎去掉预留的PageFooter的Band的高度.

//2.  0.6为空行Band的高度,即BlankBand的高度。

//3.  29.7为一张竖向A4张的默认高度。

    若不加此限制,有可能你的明细记录在一张纸上打不下时跳到第二页打,引擎因为只计算了PageFooter的高度,忽略了报表前面的Band高度会造成不停地插入空行以致报表的页数会被不停地添加导致死循环。


---------------------
作者:chinmusam
来源:CSDN
原文:https://blog.csdn.net/chinmusam/article/details/6663524
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/sdlz/p/10742788.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值