说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

自定义快速报表的打印预览窗口-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
自定义快速报表的打印预览窗口-Delphi资料

---- Quick Report 2.0 中 提 供 的 默 认 打 印 预 览 窗 口 是 英 文 界 面 的, 如 果 开 发 的 中 文 软 件 中 带 有 这 种 英 文 显 示, 不 免 有 些 小 小 的 缺 憾。 因 此 有 必 要 实 现 中 文 界 面 的 打 印 预 览 窗 口。 但 是Delphi 提 供 的 源 代 码 中 并 没 有 打 印 预 览 窗 口 的.PAS 源 文 件, 这 就 无 法 直 接 修 改 源 码, 只 能 全 部 自 己 编 程 实 现。 经 多 次 实 践, 笔 者 模 仿 实 现 了 与 默 认 预 览 窗 口 外 观 类 似, 功 能 相 同 的 打 印 预 览 窗 口。 步 骤 如 下:

---- 1. 新 建 一 个 窗 体, 设 置Name 为MyPreview。

---- 2. 在 窗 体 上 添 加 一Toolbar 控 件, 模 仿 默 认 预 览 窗 口 创 建 相 应 的Toolbutton, 并 设 置 各 按 钮 的Hint 提 示。

---- 3. 添 加 一Panel 控 件, 对 齐 方 式 置 为alBottom。 再 在 此Panel 上 放 一ProgressBar( 左 对 齐) 和Panel( 右 对 齐), 分 别 显 示 报 表 装 载 进 度 和 其 他 提 示 信 息。

---- 4. 添 加QRPreview 控 件, 对 齐 方 式 置 为alClient。

---- 5. 添 加OpenDialog, 设 置Filter 属 性 为*.QR; 添 加SaveDialog, 设 置Filter 属 性 为*.QR|*.TXT|*.HTM|*.CSV, 设 置DefaultExt 属 性 为*.QR。

---- 6. 双 击 各 个Toolbutton, 输 入 相 应 代 码。

---- 可 以 按 以 下 方 法 调 用 自 定 义 预 览 窗 口。

---- 重 载TQuickRep 的OnPreview 事 件, 输 入 如 下 代 码:

procedure TRptForm.RptFormPreview(Sender: TObject);

begin

with TMyPreview.Create(Application) do

begin

QRPreview1.QRPrinter := TQRPrinter(Sender);

CurRep := self;

Show;

end;

end;

附 各 成 员 方 法 的 具 体 实 现:

unit Myprv;

interface

uses

Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs

ComCtrls

ToolWin

qrprntr

Quickrpt

StdCtrls

ExtCtrls

qrextra

qrhtml;

type

TMyPreview = class(TForm)

QRPreview1: TQRPreview;

ToolBar1: TToolBar;

(其 余 成 员 变 量 和 成 员 方 法 声 明 略。)

private

{ Private declarations }

FPageCount : integer; // 生 成 报 表 的 总 页 数

public

{ Public declarations }

CurRep : TQuickRep; // 所 预 览 的 报 表

procedure UpdatePanelShow;

end;

implementation

{$R *.DFM}

procedure TMyPreview.UpdatePanelShow;

begin // 更 新 显 示

Panel2.Caption := ' 第 '+inttostr(QRPreview1.PageNumber)+ ' 页 总 '+inttostr(FPageCount)+' 页';

end;

procedure TMyPreview.ToolButton2Click(Sender: TObject);

begin //ZoomToFit 缩 放 至 全 屏

QRPreview1.ZoomToFit;

end;

procedure TMyPreview.ToolButton3Click(Sender: TObject);

begin //ZoomTo100% 缩 放 至 实 际 大 小

QRPreview1.Zoom:=100;

end;

procedure TMyPreview.ToolButton4Click(Sender: TObject);

begin //ZoomToWidth 缩 放 至 页 宽

QRPreview1.ZoomToWidth;

end;

procedure TMyPreview.ToolButton6Click(Sender: TObject);

begin //First page

QRPreview1.PageNumber := 1;

UpdatePanelShow;

end;

procedure TMyPreview.ToolButton8Click(Sender: TObject);

begin //prior page

QRPreview1.PageNumber := QRPreview1.PageNumber+1;

UpdatePanelShow;

end;

procedure TMyPreview.ToolButton7Click(Sender: TObject);

begin //next page

QRPreview1.PageNumber := QRPreview1.PageNumber-1;

if QRPreview1.PageNumber =0 then

QRPreview1.PageNumber:=1;

UpdatePanelShow;

end;

procedure TMyPreview.ToolButton9Click(Sender: TObject);

begin //Last page

QRPreview1.PageNumber := FPageCount;

UpdatePanelShow;

end;

procedure TMyPreview.QRPreview1PageAvailable(Sender: TObject; PageNum: Integer);

begin //get pagecount

FPageCount := PageNum ;

UpdatePanelShow;

end;

procedure TMyPreview.FormClose(Sender: TObject; var Action: TCloseAction);

begin

CurRep := nil;

Action := caFree;

end;

procedure TMyPreview.ToolButton14Click(Sender: TObject);

begin //close the window

Close;

end;

procedure TMyPreview.ToolButton11Click(Sender: TObject);

begin //print setup

QRPreview1.QRPrinter.PrintSetup;

end;

procedure TMyPreview.ToolButton13Click(Sender: TObject);

begin //print

QRPreview1.QRPrinter.Print;

end;

procedure TMyPreview.ToolButton16Click(Sender: TObject);

begin //save button

if SaveDlg1.Execute then

begin

if (SaveDlg1.FIlterIndex <>1) and (CurRep = nil) then

Exit;

case SaveDlg1.FilterINdex of

1: //--*.QR

QRPreview1.QRPrinter.Save(SaveDlg1.FileName);

2: //--*.TXT

CurRep.ExportToFilter (TQRAsciiExportFilter.Create(SaveDlg1.FileName));

3: //--*.HTM

CurRep.ExportToFilter (TQRHTMLExportFilter.Create(SaveDlg1.FileName));

4: //--*.CSV

CurRep.ExportToFilter(TQRCSVExportFilter.Create(SaveDlg1.FileName));

end;

end;

end;

procedure TMyPreview.ToolButton17Click(Sender: TObject);

begin //load button

if OpenDlg1.Execute then

QRPreview1.QRPrinter.Load(OpenDlg1.FileName);

end;

procedure TMyPreview.QRPreview1ProgressUpdate(Sender: TObject; Progress: Integer);

begin //updage progress bar

ProgressBar1.Position := Progress;

end;

procedure TMyPreview.SaveDlg1TypeChange(Sender: TObject);

begin //set DefaultExt property of Savedialog

with SaveDlg1 do

case FilterIndex of

0: DefaultExt := '.QR';

1: DefaultExt := '.TXT';

2: DefaultExt := '.HTM';

3: DefaultExt := '.CSV';

end;

end;

end.//end of Unit

MemSQL:号称世界上最快的内存-关系型数据库 兼容MySQL但快30倍 PC衰落 Intel转投Google挖掘移动市场潜力 移动周报:500元体感、精确到0.01毫米的Leap Motion TUP第29期:王淮、龚世海谈如何打造优秀的技术团队 一网打尽13款开源Java大数据工具,从理论到实践的剖析 从用户体验的善与恶说起,做用户爱“玩”的教育应用 三大主流开源硬件对比:Arduino vs BeagleBone vs Raspberry Pi “BlackBerry 10移动应用开发大赛”应用推荐 Java程序优化的一些最佳实践 Heka:Go编写,来自Mozilla,高效、灵活的插件式数据挖掘工具 Anchora鲁为民:PaaS是我的兴趣 次世代IDE Light Table 0.4发布 带来众多更新和改进 别再设计易碎的Web API! LinkedIn:55人支持2700位员工,2亿用户的大数据分析 Brian Krzanich是谁?这位新CEO预示英特尔未来怎样? HTML5开发者心声:浏览器兼容性成最大问题 传微软6月下旬将发布第二代Surface 7到9英寸全有 Turbulenz:HTML5 2D和3D游戏引擎开源 携程开放平台总经理夏天:内容+高转化率成就开发者 直接拿来用!最火的Android开源项目(一) Qunar 谌振宇:旅游行业的移动化如何布局? 大数据分析“铁三角”: Teradata数据仓库、Teradata Aster与Hadoop Teradata专业服务:打造行业企业的“数据科学家” Xamarin Evolve 2013:竭尽全力让C#服务iOS与Android 史上最全!57个Web框架4轮横向对比 回顾银行数据的可用性和一致性历史 Qubole:托管在AWS平台上的Hive服务 自由操作系统 Debian 正式发布7.0版本 4月份浏览器份额:IE 8仍居第一,IE 10翻番 亚马逊正式在华推Android应用商店 收入3:7分账 不要男孩,只允许女生参加的四所编程学校 我的facade session bean中老是lookup 其他的EJBs 不成功? 这两句什么意思啊? 结识ASP高手,将来会有项目介绍!:) exchange server 2000 能装在xp上吗? 怎样使自己的程序被安装的时候安装上自己制作的字体?? 求助:帮小妹找份工作 有高手在吗?帮帮忙! 一个在ASP中很简单的问题 很想很想很想散分 预报天气如“叫床” 湖南性感女主持惹争议 Websnap中TEnduserSessionAdapter组件的TadapterField问题~~~~~~~~~~~~~~~~~~~~~~~~~~ 急!!帮我看段代码! 为何对话框程序加入RichEdit控件后不能运行? 想知道word.application的朋友请进: InstallShield Express Custom Editon for Delphi那里有下载? 请问vb.net和vc#能不能创建数组控件??? 请问vb.net和vc#能不能创建数组控件 请问一下,vc 写的 dll,使用postmessage给出一个消息到窗口,在 vb 中应该怎么样响应? 我想开发一个数据中间层但不知哪用.net ATL MFC 开发好,能给个建议吗? 寻求cs CD-key 文件名(很有些困惑!) 高手近来拿分,请教一个算法问题,共开三帖,每帖一百分。 在windows2000+delphi6+ado+access2000做的程序可以在windows98中用吗? 我想学门语言,现在哪种最有前途啊 一个免费的电影网站,不需要手机不需要花钱就能看电影 数据库存储一些记录后不能写入,数据库文件异样(BDE) 急问:这样的文件怎样导入数据库? 一个免费的电影网站,不需要手机不需要花钱就能看电影 IIS下配置php-4.3.2-Win总是不行??? 很多书上都有说jsp:useBean的scope属性的application,是指任何使用相同的application,这个相同是什么意思? 关于统计的问题 马甲识别诸法之我论(转贴) 弱弱地问一个问题。 如何用键盘弹钢琴? ASL是什么? how to 高考 装了win2003之后调试asp.net还要不要再装其它软件? 学c++出路 我把数据库的连接池作到Bean中,麻烦就此产生,请高手帮我解决??? 成熟OA系统,B/S模式,三十几个模块,四十几个功能,超底价出售原代码,包你满意,有意者留个油箱,我把部分文档给你发过去,如果你离南 怎样装微软官方论坛? 成熟OA系统,B/S模式,三十几个模块,四十几个功能,超底价出售原代码,包你满意,有意者留个油箱,我把部分文档给你发过去,如果你离南 win2000安装后,每个一秒种读一次盘,请帮我解决问题。谢谢! 谁还来个高程QQ群? 大家都上过哪些收费电影下载网站? 请问那里有好的中文输入法下载。我的是redhat72 在线等待----100分,急!!! 光标定位问题 asp mail question 一些比较菜的问题 蒂姆波顿都有什么作品? class发什么音 好的开始是成功的一半英文 Cross Me Off Your List 什么意思,CROSS什么意思略过 有 删除 的意思? 对了 表示对钩 那个 是check 叉号,是不是就是 cross 我的音乐课3点结束 my music class --------- ----------- ----------横线怎么填?顺便问下,a与one有什么区别? 翻译英语“好的开始是成功的一半” 15,16互质吗 Japanes中的a发什么音,class,apple,that也同样如此 father是什么意思 有没有国外名人犯错之后促进成就的例子各个方面的都可以~ 五下语文补充习题第1课春光染绿我们双脚最后一题的第2小题 father什么意思 21个人怎么排列感恩的心手语舞.我们都会啊!就是不会排位子。21个人排位怎么排啊。求个犀利点的位子! 有的飞机有四个引擎,有的飞机只有两个引擎,我的问题是四个引擎的飞机假如坏了一个引擎还有三个引擎应该还可以继续飞,但要是只要两个引擎的飞机坏了一个引擎那可能就要坠机了,那为了 给幼儿讲故事时要注意什么? 大家有谁知道关于恐龙的成语有哪些啊? 以“成功不是永不犯错,而是永不犯相同的错”为主题的演讲,有什么名人事例啊? 好的开始是成功的一半用英文怎么说?还有..留着青山在,不怕没柴在有志者事竟成只要决心大,天大的困难都不怕 感恩的一首小诗.单位晚会感恩的心手语舞的前缀 已知函数f(x)=2的x方则函数f(1-x)的大致图像是 叮咛的近义词 6人感恩的心手语舞,应如何排队?队形要求有意义,最好2种, 甲班有240本书,乙班有260本书,捐出相同的本数.剩下甲是乙的80%,两班共捐几本书? 英语翻译热头盆 煎法国鹅肝伴苹果 20.00 元 French Foie gras fried with apple 20.00冻头湓 西班牙火腿拼密瓜 48.00元 香芒汁带子冻 8.00 元 热汤 酥皮大虾忌廉汤 25.00 元 酥皮蜗牛汤 20.00元 农夫鲍鱼忌廉 蒂姆用英语怎么写呀? 请问磨砺的近义词 英语翻译WESTERN “Soup of the Day” CHINESE “Soup of the Day” CREAM of POTATO with CHOPPED BACON 都说蒂姆伯顿是鬼才,那形容他的这个“鬼才”英语怎么说的 用“视”组词 和 写句子.用视组词:( )视 组10个春节的时候,在热闹的爆竹声中,送走了旧的一年.春风吹来了,非常温暖.人们喝着美酒沉浸在欢乐中.由此,我们想到宋朝王安石的两句诗:— 打电话 哪些句子把你笑了 蒂姆波顿的电影大鱼是英式英语还是美式英语英式英语是全部都没有儿音的吗 还是说伦敦腔不一样 这个电影我听是英式可是它有儿音啊 还有我看爱尔兰的口音和英式差很多啊 是这样么 它 幼师面试时应该如何介绍自己 关于打电话想句口号单位提倡节能,上句是:上班不煲电话粥下句应该写什么?最好押韵,恩,我的意思是下句也关于打电话长话短说的意思. 高中生物2学法生物必修2 为什么现在的我这么浮躁过了年 又开始了这无聊的工作 我现在什么也不想干 特浮躁 心里很乱啊 真的想换个工作环境 可不知道还能去哪 真的挺烦的 叮咛的近义词是什么 高中生物必修二,好难要怎么学?学到孟德尔实验和减数分裂,感觉减数分裂还罢了,主要数不清楚染色体啊,染色单体,姐妹染色单体,等等还有我想不起来了,这些的个数.但是孟德尔实验就死翘翘 不屑一顾是什么意思? 英语翻译1 我给她打了两个电话 这么翻译行吗?I called him twice 如果可以 再给同义句2 你今天给她打了几个电话?3 我给她 打电话了,可是一直没人接4 我打电话给她了,她手机关机了英语翻译 5 他 谁看过Tim Burton的骷髅新娘(CorpseBride)?演职员表的最后有一句In menory of Joe Ranft.谁知道是怎么回事?Joe Ranft是谁?为什么纪念他? 初二地理求解,第8、9题该怎么做?求详细解答 She was at the museum(on Wednesday morning.)对画括号部分提问 仿写句子:成功是自私的,它绝不会将辉煌施舍给懒汉 不屑一顾的意思请回答 The trip to the Palace Museum was (really wonderful) 对括号部分提问 VFP中modify和create有什么区别 叮嘱的近义词是什么 as soon as as soon as VFP中browse field和list off有什么不同 It___boring.A:sound B:sounds C:watch D:watches 给句子换个说法1 我回到了故乡小镇.2汤米,我要到另一个世界去歌唱. 苹果是梨的3/5苹果比梨少百分之几呢,梨比苹果多百分之几 关于形容词作定语the design for the room was of the fancy style popular in those days.这里popular in thouse days是形容词短语做定语吗?为什么polular前面不用家be动词?形容词前可以不加的吗? as soon as 如题 我想:等爸爸妈妈老啦,我一定要好好()他们.(填立组的词)我想:等爸爸妈妈老啦,我一定要好好()他们。(填养组的词)打错了! 2012江苏省姜堰市的初中地理,生物会考成绩怎么查询? 照样子把句子换个说法.例:马跑得越快,离楚国不就越远了吗?马跑得越快,离楚国就越远了.1、 画画怎么能不相信自己的眼睛呢?2、 楚国在南边,你怎么能往北走呀?3、父母养育了我,我怎么能 在____的影响下 可以选填雷锋、妈妈、书、电脑等词语 然后写一篇文章要600字左右! 近义词、叮咛——……?、依旧——……? 照样子,把句子换个说法.例:密密层层的枝叶挡住了阳光。阳光被密密层层的枝叶挡住了。密密层层的枝叶把阳光挡住了。1、拦河大坝拦住了奔腾的黄河水。2、他按照规则传递口令。 陕西副县长被指公费出国游 纪委调查至澳使馆为美国搜集亚太情报\"诈弹\"威胁长沙机场疑犯被抓 频美使馆疑用这个“白盒”监听军事专家:极易致误判误撞和擦枪走火冷战游戏 蓦然重现空气污染致癌 波兰向碳排放开刀斯诺登谋得俄网站工作禁化武组织:叙利亚已按规定销毁化学武美国辱华电视主持人称不会辞职 未答应“免费”医疗让俄罗斯进退两难 仅约3上海自贸区改革红利初显 打造宽进严管报告称撒哈拉以南地区明年经济增速将达学者解析温家宝首次出书谈教育:出身教山东菏泽回应城建局集体打牌:6名员工内蒙古调查乌兰察布新豪楼:立即停止办新一批法规今起实施 手机预装软件应报俄媒体称斯诺登将供职于俄知名网站新消法规定:消费遇商家侮辱搜身可索赔律师称斯诺登将从11月起在俄大型网站直击吉林松原震区:村民“抱团”度寒夜你的App为什么上不了TOP10?花千骨手游体力怎么获得 获得方法介绍莲花白菜滴滴回应收购神州专车传闻:未有过类似红薯炒小黄瓜这6家公司的创始人均已失位,它们过得辣鸡手侃爷现身adidas Yeezy B胡萝卜烧豆腐花千骨手游翅膀有什么作用 翅膀作用详SpaceX将于今晚首次发射一枚火箭互联网分期PK银行信用卡分期 哪家强民用口罩国家标准将出台 买口罩更放心平行线相交 游戏机与职业电竞的小历史2015年CES国际消费电子展银行应用互联网征信 打造新信用卡高地Silent Circle任命Bil降息降准成强大动力助推房市发展国务院再出促外贸政策 出口退税进度加“苹果版”News问世 引爆人工与算本兮将与神秘好友同任反恐行动珠海国际
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘