用fastreport设计报表时的问题?(50分)

  • 主题发起人 anthonytang
  • 开始时间
A

anthonytang

Unregistered / Unconfirmed
GUEST, unregistred user!
我用fastreport做一个报表,每页十条记录,不足按空记录显示,求助?
 
手工设计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;

把8变成10就行了
 
看FR的DEMO,有例子
 
请问DHL2001,那band5,子栏是什么呢?我能否将我设计的报表EMAIL你呢?请留你的EMAIL,我用的思路是在10的倍数记录,不足的用
空白记录填补,事件触发在打印前,打印后删掉空白记录。万分感谢!
 
多人接受答案了。
 
顶部