Ⅰ.制作一个简单的报表
在这一步,我们先看看如何制作一个仅包含有列标题和数据内容的报表(如表1):
1.建立一个新的Form;字体设置为宋体五号,PrintScale属性设置为False;
2.在该Form上放入两个QuickReport组中的TQRBand构件Band1,BandDetail;将其type属性设置为rbColumnHeading,rbDetail;
3.放入一个TTtable构件Table1,设置其DataBase属性为DBDemos,TableName属性为Custermer,Active属性为Ture,再放入一个TDataSource构件DataSourcel,设置DataSet属性为Table1;
4.在Band1上加入三个TQRLabel构件,将其Caption属性值分别设为“公司名称”、“电话”、“传真”;在BandDetail中加入三个TQRDB Text构件,将其DataSource属性设为DataSourcel;DataField属性分别设为Company,Phone,Fax;
5.加入一个QuickReport构件Report1,用右键单击,并选择Preview项,可预览报表,此时你可发现该报表仅显示当前一条记录,将TQuickReport构件DataSource属性设为DataSource1,再进行预览就可看到所有的记录均显示在报表中;
6.至此报表已基本完成,可在程序中加入Form1.Report1.Priview;对该报表进行预览,加入Form1.Report1.Print;打印该报表。
Ⅱ.制作带有主从关系的复杂报表
1.加入一个新的TTable构件Table2,设置其DataBase属性值为DBDemos,TableName为Orders,Active为Ture,设置MaserSource为DataSource1,建立主从关系为CustNo;增加DataSource2,设置其DataSet属性值为Table2;
2.增加一个TQRBand构件Band3,设置其Type为rbSubDetail;
3.在Band3中增加两个TQRLabel构件,设置其Caption分别为“订单编号”、“金额”;相应在该TQRLabel构件后增加两个TQRDBText构件,设置其DataSource属性为Datasource2,DataField属性分别为Order,AmountPaid;
4.增加一个TQRDetailLink构件QRDetailLink1,设置DataSource属性值为DataSource2,设置Master属性为Report1,DetailBand为Band3;
5.主从关系报表即可完成,形式表2。
Ⅲ.给报表增加页眉和页脚
为了美观和方便,我们常希望能在报表每页的页眉或页脚中打印出页码、总页数、打印日期等等。在QuickReport中也提供了简便的方法:
1.在该Form中再增加一个TQRBand构件Band4,将其Type属性设置为rbPageHeader,即可将Band4中的内容作为页眉打印出来;
2.在Band4中加入TQRLabel构件,以在报表中每页显示文字;加入TQRSYSdata构件,设置其Data属性值,可在报表中显示页码、打印日期、打印时间、记录序号等等文档信息;
3.如希望在每页中显示总页数,则必须写入下面几行程序:
Report1.Prepare;
Count:=QRPrinter.PageCount;
QRLabell.Caption:=InttoStr(Conut);
Report1.Cleanup;
Report1.Preview;
Ⅳ.为报表增加标题和封面
我们希望在第一页上加上标题或给报表加上封面,在使用QuickReport制作报表时,也是很简单的。在报表中增加一个TQRBand构件,将其属性设为rbTitle,在Band5中所加的文字和图形,均在第一页中打印出来。当用于封面时,可在该Band的AfterPrint事件中加入Report1.NewPage,即可。
Ⅴ.为报表增加表格线
可以使报表看起来更为清晰明朗。在QuickReport中提供了两种方法:一是使用TQuickReport和TQRBand构件的Frame属性;二是直接使用TQRSharp构件。
使用TQuickReport和TQRBand构件的Frame属性的优点是设置简单,不需要写程序代码;缺点就是不能随意修改其位置和大小。使用TQRSharp则恰恰相反。而且在其所属Band的AfterPrint事件中可自由修改其位置、线型、粗细等参数。
Ⅵ.制作一个自己的Priview窗口
QuickReport提供了一个缺省的Preview窗口,在TQuickReport构件上单击右键选择Preview显示报表时使用的也是该Preview窗口。但由于该Preview窗口是英文版,当我们需要显示的是中文时,就需要制作一个自己的Preview窗口,其方法简单叙述如下:
1.建一个新Form:Form2;
2.在其上加入一个TQRPreview构件;
3.增加几个Tbutton构件,使用其OnClick事件调用该TQRPreview构件的ZoomtoFit方法,ZoomToWidth方法或修改PageNumber和Zoom属性值即可自由调整TQRPreview
构件中所显示报表的显示状态;
4.为了能在程序中调用Preview方法时显示的是自己的Preview屏幕,还须在程序的主单元中写入下面的代码:
QRPrinter.OnPreview:=OnPreview;
ProcedureTMyMainForm.OnPreview;
begin
Form2.ShowModal;
end;
5.至此你便拥有了自己的Preview屏幕
值得注意的是此屏幕只能在程序执行的过程中显示。
综上所述,使用QuickReportforDelphi制作报表主要是通过将包含打印内容的构件TQRLabel、TQRDBText、TQRCacl、TQRSysData、TQRSharpTQRMemo等等放置在相应的T
QRBand上,并设置TQRBand构件的Type属性以确定该Band打印位置,从而实现页眉、页脚、标题、水印、表格线等报表的特殊效果,并可使用TQRDetailLink、TQRGroup等辅
助构件给Band间建立连接关系及对数据内容进行分组,以实现明细表、数据分类等特殊的报表要求。