在Delphi 3中制作报表预览窗体
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%比例显示按钮:^321301a^
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方法来预览报表,看到的就是刚创建的预览窗体了。