手工设计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;
我的一个例了
或者,用上面各位的方法,
用一个隐含的主项数据band写script
while freespace>20do
showband('band2')//bnad2 是显示空格的band