请教FastReport3.0的一个小问题,关于换页的:(10分)

  • 主题发起人 主题发起人 net_morning
  • 开始时间 开始时间
N

net_morning

Unregistered / Unconfirmed
GUEST, unregistred user!
强制换页,我在DetailBand的beforePrint写如下代码:
procedure DetailData1OnBeforePrint(Sender: TfrxComponent);
begin
IF ([line#]-1>0) and ([line#]-1) mod 4=0 then
newpage;
end;
提示:"]"expected
直接写:
procedure DetailData1OnBeforePrint(Sender: TfrxComponent);
begin
newpage;
end;
提示:Undeclared identifier:'newpage'
我用的fr 是3.0版
 
procedure DetailData1OnBeforePrint(Sender: TfrxComponent);
begin
IF ([line#]-1>0) and ([line#]-1) mod 4=0 then

Engine.newpage;
;
end;
 
var
PageLine: integer;
//在現在頁列印到第幾行
PageMaxRow: integer=4;
//設定每頁列數
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
PageLine := <line> mod PageMaxRow;
if (PageLine = 1) and (<line> > 1) then
Engine.newpage;
end;
 
lucky_qiu大侠,你的代码非常好,谢谢,分页解决了[:D]
不过遇到两个问题请教一下:
先说明一下,这个分页的报表是主从表,套打。
1、分页后,主表头也需要显示在第二页上,可是用这个代码分页后,第二页没有主表头。
2、有个落款字段,也是在固定位置上,也就是第四行下面,我用Footer,无法将落款字段正确定位到紧接第四行下面,目前出现的效果是:如果只有两行从表数据,则落款打印到第三行了
 
增加一個Child
格式與MasterData相同,
//Footer1 高度設為0
procedure Footer1OnBeforePrint(Sender: TfrxComponent);
var
i: integer;
begin
i := iif(PageLine=0, PageMaxRow, PageLine);
while i < PageMaxRowdo
begin
i := i + 1;
Engine.ShowBand(Child1);
//印空白表格
end;
end;
 
后退
顶部