4.在Form1中添加更新提示代码:
void TForm1::RefreshPanel()
{ //更新提示信息
Panel2->Caption=“第”+IntToStr(Form1->QRPreview1->PageNumber)+“页”+“共” + IntToStr(Form2->QuickRep1->PageNumber)+“页”;
}
5.从Form1中选择QRPreview1,在其事件中选择OnProgressUpdate,输入以下代码:
//显示报表装载进度
ProgressBar1->Position=Progress;
RefreshPanel();
6.打印:
Form2->QuickRep1->Print();
7.打印设置:
DEVMODE *pDev;
LPPAGESETUPDLG mylp=new PAGESETUPDLG;
memset((void *)mylp,0,sizeof
(PAGESETUPDLG));
mylp->lStructSize=sizeof(PAGESETUPDLG);
mylp->hwndOwner=this->Handle;
mylp->Flags=PSD_RETURNDEFAULT;
PageSetupDlg( mylp );
if (mylp->hDevMode!=NULL){
pDev=(DEVMODE *)GlobalLock(mylp->hDevMode);
pDev->dmPaperSize =OldPaperSize;
pDev->dmOrientation =OldOrientation;
mylp->rtMargin.left =OldLeft;
mylp->rtMargin.right =OldRight;
mylp->rtMargin.top =OldTop;
mylp->rtMargin.bottom=OldBottom;
GlobalUnlock(mylp->hDevMode);
mylp->Flags=PSD_MARGINS|
PSD_INHUNDREDTHSOFMILLIMETERS;
if(PageSetupDlg(mylp)){
pDev=(DEVMODE *)GlobalLock
(mylp->hDevMode);
OldPaperSize =pDev->dmPaperSize;
if(OldPaperSize>28)OldPaperSize=9;//A4
OldOrientation=pDev->dmOrientation;
OldLeft =mylp->rtMargin.left;
OldRight =mylp->rtMargin.right;
OldTop =mylp->rtMargin.top;
OldBottom =mylp->rtMargin.bottom;
Form2->QuickRep1->Page->Orientation =OldOrientation-1;
Form2->QuickRep1->Page->PaperSize
=OldPaperSize;
Form2->QuickRep1->Page->LeftMargin =OldLeft/100;
Form2->QuickRep1->Page->RightMargin =OldRight/100;
Form2->QuickRep1->Page->TopMargin =OldTop/100;
Form2->QuickRep1->Page->Bottom
Margin=OldBottom/100;
GlobalUnlock(mylp->hDevMode);
}
GlobalFree(mylp->hDevMode);
}
delete mylp;
QRPreview1->PageNumber=1;
Form2->QuickRep1->Prepare();
Form2->QuickRep1->Preview();

