在Delphi 3中制作报表预览窗体 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.Page
Count 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方法来预览报表，看到的就是刚创建的预览窗体了。
(若 冰)