fastreport 自动换页的问题(100分)

  • 主题发起人 主题发起人 demogorgon
  • 开始时间 开始时间
D

demogorgon

Unregistered / Unconfirmed
GUEST, unregistred user!
我想打印如下报表
———————————————————————————
| 姓名 | 年龄 | 性别 | | | |
|----------------------------------------------------
| 张三 | | | | | |
| 李四 | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
------------------------------------------------------
但是当数据如果过多,超过一页的话,我希望可以换页,并在每页下加一个直线把数据封在
一个封闭的矩形中,但是现在我只能得到没有封闭的报表,应该如何设计?
//3x
 
难道没有人会吗?急急急急急急!!!!!!
那位大虾帮忙啊,分数大大大大大大大大大的有~~~~~~~
//bow了
 
手工设计fast reprot方法
报表窗口如下
frdbdataset1 fr数据源 dataset设置为要显示的数据集
frreport1 fr报表
报表的的设计如下
band1,报表标题
band2,主项数据无数据源 
band3,主项数据 数据源为frdbdataset1
band4,栏目脚,用于显示合计数据
band5,子栏  ,用于不足行时补写空白行

procedure TForm1.frReport1ManualBuild(Sender: TfrPage);
//在frreport1中的onmanualbuild事件中手工设置报表项
var
i, j,k: Integer;
begin

k:=trunc(frdbdataset1.DataSet.RecordCount/8);
            //每页显示8行(行数可用变量),计算页数
Sender.ShowBandByType(btReportTitle);
//显示报表标题
for i := 0 to kdo
//循环打印每页
begin
Sender.ShowBandByName('Band2');
       //显示列头 (band2是一个主项数据,无数据源)
for j := 1 to 8do
//循环打印每行
begin
if not frdbdataset1.Eof then
begin
Sender.ShowBandByName('Band3');
      //显示主项数据 (band3是主项数据,数据源为frdbdataset1)
frdbdataset1.Next;
//显示下一条数据
end
else
sender.ShowBandByName('band5');
//显示空白行 (band5为child band)
end ;
//在实际的页面设计当中此处有一个栏目脚band 以显示合计
if i <> k then
Sender.NewPage;
//产生新页面
end;
end;
 
//3x dhl2001 我会试一试的
有没有其他简单些的方法么?多谢了~~~
 
现在发现这个做法好像不行啊,我要打印的记录并不是从一个表中提取的,而是有子报表。
我试了一下,好像子报表的数据打印不出来啊,应该怎么设置?
//3x
急啊~~~
 
这么easy的报表用delphi自带的QuickReport就轻松搞定。
至于页面最下的横线,在页脚band上放个横线就可以了。
 
to samcrm:
在页脚放一个横线这种做法是不行的,因为如果记录不满一页的话,这条横线还在固定的
底部,这样还是不能构成一个封闭的区域。
用QReport我没有试过,因为这个报表不是单纯从一个数据集取记录,而是有好几个子报表进行套打得出来的,
当时考虑到fastreport在这方面好像比较强,所以就选用了,现在其他的都做好了,就差这条横线死活都加不上去,请各路
高手指教啊~~
//bow ~~
 
在報表中放一個Masterfooter和Pagefooter,并在每個上面畫一條線.
第一種方法:在最后一頁把Pagefooter設為不可見;
第二種方法:當Masterfooter可見時,把Pagefooter設為不可見.
 
多人接受答案了。
 
后退
顶部