Borland Delphi 3.0提供了Quick Report部件,使得报表的制作更加灵活方便,利用QuickRep的Preview方法可以预览报表。但美中不足的是,预览窗体中的提示皆为英文。利用Quick Report部件已有的功能,开发一个自己的报表预览窗体并不困难。下面介绍制作的步骤:
1.新建一个窗体,起名为“MyPrevForm”,设置Visible属性为“False”,以“Preview”为单元名保存该单元。
2.插入两个TPanel控件到窗体中,分别设置Panel1、Panel2的Align属性为“alTop”、“alBottom”,设置Panel1的ShowHint属性为“True”。
3.向窗体中插入一个TQRPreview对象,取名为“QRPreview”,其Align属性设置为“alClient”。
4.插入一个TOpenDialog对象和一个TSaveDialog对象到窗体中。
5.设计工具条:在Panel1上添加11个TspeedButton控件,分别完成以下功能:整页显示、100%比例显示、按页宽显示、第一页、上一页、下一页、最后一页、打开报表文件、保存报表文件、打印设置、打印。设置“整页显示”、“100%比例显示”、“按页宽显示”三个按钮的GroupIndex属性为1,“按页宽显示”按钮的Down属性设置为True。
6.在Panel2上添加两个Label,分别命名为lbPageNo、lbPageCount。
7.添加代码:
1)给QRPreview的OnPageAvailable事件添加语句:
lbPageCount.Caption:='共'+IntToStr(QRPreview.QRPrinter.PageCount)+'页';
2)向各按钮的OnClick事件中添加语句:
A.整页显示按钮:
QRPreview.ZoomToFit;
B.100%比例显示按钮:

QRPreview.Zoom:=100;
C.按页宽显示按钮:
QRPreview.ZoomToWidth;
D.至第一页按钮:
QRPreview.PageNumber:=1;
lbPageNo.Caption:='第1页';
E.向前翻页按钮:
if QRPreview.PageNumber>1 then
begin
QRPreview.PageNumber:=QRPreview.PageNumber-1;
lbPageNo.Caption:='第'+IntToStr(QRPreview.PageNumber)+'页';
end;
F.向后翻页按钮:
if QRPreview.PageNumber<QRPreview.QRPrinter.PageCount then
begin
QRPreview.PageNumber:=QRPreview.PageNumber+1;
lbPageNo.Caption:='第'+IntToStr(QRPreview.PageNumber)+'页';
end;
G.至最后一页按钮:
QRPreview.PageNumber:=QRPreview.QRPrinter.PageCount;
lbPageNo.Caption:='第'+IntToStr(QRPreview.QRPrinter.PageCount)+'页';
H.打开文件按钮:
if OpenDialog1.Execute then
QRPreview.QRPrinter.Load(OpenDialog1.FileName);
I.保存报表按钮:
if SaveDialog1.Execute then
QRPreview.QRPrinter.Save(SaveDialog1.FileName);
J.打印设置按钮:
QRPreview.QRPrinter.PrintSetup;
K.打印报表按钮:
QRPreview.QRPrinter.Print;
8.保存该单元。
为在程序运行时用刚设计的预览窗体替代Quick Report提供的预览窗体,请在已建立的报表单元的implementation部分加上:uses Preview;并给TQuickRep控件的OnPreview事件添加代码:
MyPrevForm.QRPreview.QRPrinter:=QuickRep1.QRPrinter;
MyPrevForm.Show;
到此,在运行期间调用TquickRep的Preview方法来预览报表,看到的就是刚创建的预览窗体了。