Delphi中用fastreport做好了打印,打印预览时为啥显示的数据都是第一条的数据呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi中用fastreport做好了打印,打印预览时为啥显示的数据都是第一条的数据呢?相关的知识,希望对你有一定的参考价值。

比如输入了4条记录,但是预览的时候显示4条记录,但是内容都是第一条的。

参考技术A masterdata band

FastReport之实现打印固定行数,不足补打空白行的办法

在设置单据的打印模板的时候,我们有时候会遇到这样的情况:单据的内容很少,打印出来的效果不理想的情况,例如
1、单据体与单尾之间有大量的空白;

2、单据体跟单尾连在一起,单尾后面的空白篇幅太大;

以上这两种打印效果并不理想,我们期待的是,系统能自动填充空白行至满页。
实现步骤:
1、在打印模板上添加“子”对象child,并把单体的内容复制到该部分,并清空各个对象的值,出现一个空白行。
2、打开打印模板的代码编辑窗口,添加以下两个事件(可以直接把以下的代码拷贝到代码编辑器中,保存即可):
var
  PageLine: integer; //在现在页列印到第几行
  PageMaxRow: integer=20; //设定每页列数
procedure Footer1OnBeforePrint(Sender: TfrxComponent);
var
  i: integer;
begin
  i := iif(PageLine=0, PageMaxRow, PageLine);
  while i < PageMaxRow do begin
  i := i + 1;
  Engine.ShowBand(Child1); //印空白表格
  end;
end;
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  PageLine := <line> mod PageMaxRow;
  if (PageLine = 1) and (<line> > 1) then
  Engine.newpage;
end;
begin
end.
3、选择打印模板的单体部分,切换到“事件”页,并在OnAfterPrint 事件中选择MasterData1OnBeforePrint
4、选择打印模板的单尾部分,切换到“事件”页,并在OnBeforePrint事件中选择Footer1OnBeforePrint
5、保存
现在我们就可以得到以下的打印效果了!

以上是关于Delphi中用fastreport做好了打印,打印预览时为啥显示的数据都是第一条的数据呢?的主要内容,如果未能解决你的问题,请参考以下文章

求教delphi 中fastreport报表的问题

delphi 2010 的打印报表fastreport怎么读取流中的内容并显示出来最好有代码例子

delphi FastReport快速入门

DELPHI 下fastreport打开指定目录中的报表文件怎么写语句

delphi fastreport 打印预览的时候没反应,而且内存狂飙,我delphi完全不熟,请大家贴点代码来看看,谢谢

delphi7的fastreport5版本的二维码怎么添加多个内容?