Delphi FASTreport 4 自动补空行的方法

写了一个比较简单易懂易调试的补空行的方法

1.当只有一页时

在masterdata增加一个child,设置visible=false

在masterdata的OnAfterPrint加入事件

procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
var
i,j,k,hh:integer;
hs:string; //当前行数
begin
  i:=1;
  hh:=18; //数据页每页行数
  j:=MasterData1.dataset.recordcount;
  k:=hh-j mod hh;
  hs:=<line>;
  if strtoint(hs)=j then
  begin
    child1.visible:=true;
    while i<=k do
    begin
      engine.showband(child1);
      i:=i+1;
    end;
  end;
end;

测试很成功,大家可以试试

 

2.当分栏时,一页内可能打印多个页面,我们需要用完child就改为不可见

procedure DetailData1OnAfterPrint(Sender: TfrxComponent);
var
i,j,k,hh:integer;
hs:string; //当前行数
begin
i:=1;
hh:=3; //数据页每页行数
j:= DetailData1.dataset.recordcount;
if hh<>j then
begin
k:=hh-j mod hh;
hs:=<line>;
if strtoint(hs)=j then   
begin
while i<=k do
begin
child1.visible:=true;
engine.showband(child1);
i:=i+1;
child1.visible:=false;
end;
end;
end;
end;

posted @ 2023-06-12 10:03  特工龙井茶  阅读(361)  评论(0)    收藏  举报