



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在C+Builder中自定义预览窗口Borland C Builder是基于C语言的可视化编程环境,它提供了可重用组件库和一系列RAD设计工具,使得编程者只需用少量的手工代码就可以创建出高效的Windows应用程序,尤其是复杂的数据库访问应用程序,因此深受软件开发人员的喜爱。 在开发数据库访问应用程序时,会经常涉及到报表的打印问题。C Builder中提供了Quick Report(快速报表)组件供编程人员设计报表。Quick Report是挪威的QuSoft AS公司专门为C Builder设计的用于制作报表的一组控件,在C Builder中关于Quick Report的帮助文档不是很详细。另外它与C Builder的其他控件的风格也不太一致。直接使用Quick Report的报表预览功能总是不能达到令人满意的效果,因此有必要自定义快速报表的预览窗口。 设置预览窗口 新建工程,在Form1窗体上添加一个ToolBar控件,并在其上添加以下按钮:“打印”、“打印设置”、 “上一页” 、“下一页”、“放大”、“缩小”和“关闭”。 在Form1窗体上添加一个Panel控件,对齐方式设为alBottom,再在此Panel控件上添加一个ProgressBar控件(对齐方式设为alLeft)和一个Panel控件(Name 为Panel2,对齐方式设为alRight,BevelOuter设为bvLowered),这两个控件分别用来显示报表装载进度和其他提示信息。在Form1窗体上添加一个QRPreview控件,对齐方式设为alClient。再新建一个窗体,设其Name为Form2, 在该窗体上添加TQuickRep控件,设其Name为QuickRep1,其PrinterSetting中的Units属性设为mm(以毫米为计量单位),然后建立报表。 编程实现 1.在Form2上选择QuickRep1,在其事件中选择OnPreview,输入以下代码: Form1QRPreview1QRPrinter=Form2QuickRep1QRPrinter; 2.在Form1的头文件中找到对象TForm1的定义,在其中添加以下的代码: int OldPaperSize; int OldOrientation; int OldTop; int OldBottom; int OldLeft; int OldRight; void RefreshPanel(); 3.选择Form1的Activate事件,输入以下代码: /初始化 OldPaperSize=Form2QuickRep1PagePaperSize; OldOrientation=Form2QuickRep1PageOrientation1; OldLeft=Form2QuickRep1PageLeftMargin100; OldRight=Form2QuickRep1Page RightMargin100; OldTop=Form2QuickRep1PageTop Margin100; OldBottom=Form2QuickRep1Page BottomMargin100; Form2QuickRep1Prepare(); RefreshPanel(); Form2QuickRep1Preview(); 4.在Form1中添加更新提示代码: void TForm1:RefreshPanel() /更新提示信息 Panel2Caption=“第”IntToStr(Form1QRPreview1PageNumber)“页”“共” IntToStr(Form2QuickRep1PageNumber)“页”; 5.从Form1中选择QRPreview1,在其事件中选择OnProgressUpdate,输入以下代码: /显示报表装载进度 ProgressBar1Position=Progress; RefreshPanel(); 6.打印: Form2QuickRep1Print(); 7.打印设置: DEVMODE pDev; LPPAGESETUPDLG mylp=new PAGESETUPDLG; memset(void )mylp,0,sizeof (PAGESETUPDLG); mylplStructSize=sizeof(PAGESETUPDLG); mylphwndOwner=thisHandle; mylpFlags=PSD_RETURNDEFAULT; PageSetupDlg( mylp ); if (mylphDevMode!=NULL) pDev=(DEVMODE )GlobalLock(mylphDevMode); pDevdmPaperSize =OldPaperSize; pDevdmOrientation =OldOrientation; mylprtMargin.left =OldLeft; mylprtMargin.right =OldRight; mylprtMargin.top =OldTop; mylprtMargin.bottom=OldBottom; GlobalUnlock(mylphDevMode); mylpFlags=PSD_MARGINS| PSD_INHUNDREDTHSOFMILLIMETERS; if(PageSetupDlg(mylp) pDev=(DEVMODE )GlobalLock (mylphDevMode); OldPaperSize =pDevdmPaperSize; if(OldPaperSize28)OldPaperSize=9;/A4 OldOrientation=pDevdmOrientation; OldLeft =mylprtMargin.left; OldRight =mylprtMargin.right; OldTop =mylprtMargin.top; OldBottom =mylprtMargin.bottom; Form2QuickRep1PageOrientation =OldOrientation1; Form2QuickRep1PagePaperSize=OldPaperSize; Form2QuickRep1PageLeftMargin =OldLeft/100; Form2QuickRep1PageRightMargin =OldRight/100; Form2QuickRep1PageTopMargin =OldTop/100; Form2QuickRep1PageBottom Margin=OldBottom/100; GlobalUnlock(mylphDevMode); GlobalFree(mylphDevMode); delete mylp; QRPreview1PageNumber=1; Form2QuickRep1Prepare(); Form2QuickRep1Preview(); 8.向上翻页: /上一页 if(QRPreview1PageNumber 1) QRPreview1PageNumber; RefreshPanel(); 9.向下翻页: /下一页 if(QRPreview1PageNumber QuickRep1PageNumber) QRPreview1PageNumber; RefreshPanel(); 10.放大处理: /放大 if(QRPreview1Z
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川开顺实业(集团)有限公司利用冶金废渣开发生产新型建材项目环评报告
- 华为任职资格体系建设(二)19P
- 山东省德州市夏津县万隆实验中学2024-2025学年八年级下学期第二次月考英语试题
- 显微鉴别培训试题及答案
- 舞台机械试题及答案
- 黑龙江省哈尔滨市哈师大青冈实验学校2024-2025级高二下学期6月份考试地理试题(含答案)
- 广东省东莞市五校2024-2025学年高一下学期联考数学试卷(含详解)
- 2025屋顶维修合同范本
- 铝型材表面损伤修复技术专题
- 工程设计企业运营管理的面临的问题、机遇与挑战
- 电费代缴授权委托书模板
- 届毕业论文答辩(论文副标题)答辩指导老师放校徽成品模板
- 旧楼外墙保温合同
- 《城市规划设计计费指导意见》2017修订稿
- 四川省成都市2024年八年级下学期期末数学试题附答案
- 机加工车间培训计划
- 城市社区青少年犯罪预防的社会工作
- 无人机四会教练员教案
- St完整版本.-Mary's-医院睡眠问卷
- 2022年湖北省新高考化学试卷和答案解析
- 青少年短跑项目训练指导手册
评论
0/150
提交评论