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

自定义快速报表的打印预览窗口-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

VB如何知道硬盘是使用那一种文件系統(FAT32,FAT16)? VB如何自动更动成中文输入 VB删除整个目录 VB设置打印页边距 VB实现文件查找功能 VB使用SendMessage函数滚动文本框控件中的内容 VB使用 WIN95 的选择目录对话框 VB使用INI文件 VB使用WriteFile 块读写数据 VB使用历史文件记录 VB使用内存映射文件加快文件操作速度 VB数据报表设计器在多层结构开发的应用 VB突破 TextBox 32K 的限制 VB拖拽节点时实现目录树自动翻滚 位图文件内部初探-VB资料 VB文本的加密与解密 VB显示盘中所有的目录 VB压缩MDB文件 一个移动文件的简单方法-VB资料 VB移动文件到回收站 VB隐藏文本框控件的环境菜单(又一方法) VB隐藏文本框控件的环境菜单 VB用API复制移动文件 VB用OleDragdrop事件接受拖放文件 用VB进行文本文件的再处理 用VB开发应用程序如何使用INI文件 用VB实现文件查找功能 VB用Winsock控件实现文件的下载 VB用两分法搜索列表框或组合框中的数据 在 ListBox 之中, 如何检测鼠标所在位置的选项? -VB资料 在 Textbox 中,录入 N 个字符后移到下栏-VB资料 我想用VB写一个com分页读出tif中的多幅图像,请高手指点! 请教sql查询 情介绍一个数据库编程的好书! 请教:JBuilder中要调用MapXtreme 的bean,怎么搞,定给分 为什么TOP不能限制数据集的数目???见者有分!!! 找高手解决问题!! sql 2000的一个存储过程,有些问题, 谁能帮忙介绍工作? golive6,如何解决中文问题???在源码中无法显示中文,如何解决??? 请看看这两条代码是否一样? 寻---陈建春之<visual C++高级编程技术---开发实例剖析> 想学学UML…… 现在工作好烦!!!!!! 关于combobox很简单的问题 各位大夏,我用JBUILDER做EJB时已经编译了,可是为什么那个TOOL菜单里面的EJB DEPLOYMENT子菜单是灰的啊?也就是我怎么生成部署描述设置 教材 谁看了《我的野蛮女友了》,是不是和《不见不散》有点像阿 怎样定义自己的消息? 菜鸟问题:有关vs7.0与vs6.0的Session传递问题.(来者有分) 如何改变窗口的图标? 都有哪些方法? 报表的格式化问题? 英文win 2000 +英文IIS 联接 中文win 2000 +中文Sql Server 出现乱码的问题,在线等待 哪位有realplayer 8.0的序列号?是否可告知小妹:) 各位大侠,我想把网站的部分链接放到局域网的其他机子上,需要怎么设置 我要租房(深圳华侨城附近,1000元之内,30分钟车程之内) 请教各位,系统如何自动获取编号 转贴:回忆最有人缘的28个电视人物(1) 我要找一本叫《软件工程》的书! 网上赚钱的事会是真的吗 , 谁介绍一下 , 有没有不错的网站. 转贴:回忆最有人缘的28个电视人物(2) 大家都用的什么开发工具啊?? 如果我的DOMINO服务器坏了,我重新安装后,如何让原有的用户ID都继续使用呢?还是必须要重新注册? 高手请教!如何向oracle中读写二进制文件! 我要找一本叫《软件工程》的书! 有谁重载过CListCtrl控件?? 数据库统计的问题!!在线等待! 在Notes中,如何用LotusScript取得Notes的安装目录? 如何修改弹出菜单的内容! 突然的感慨:) [求助]在控制台程序中怎么用定时器??? 非扩充话题移动贴子就扣信誉分!究竟信誉在这里怎么解释。 我想问问大家,在哪里有一些好的软件提供下载,我想看看人家的界面,向别人学学 xsl中能进行条件选择或循环吗??? 300底线!!——如何在asp代码中实现客户端自动下载 关于MSSQL SERVER的一个存储过程并发性,请指正,谢。 各位大虾,谁有mfc42d.dll,给我一份好吗? 如何在.net下發送xml document ! 我与sasacat(傻傻猫)的婚礼于4月2日在天主教堂举行,喜宴在东来顺举办,欢迎广大CSDN水友赏光! 如何通过INTERNET 远程联接ORACLE服务器,SERVER端IP地址是固定(ADSL),客户端是通过电话线上网的 高分寻求能够在win2000下录制DEMO的工具! 关于word2000风格的工具栏设计问题 物理画图题:根据光的反射,作出发光点S在平面镜中成像的光路图S在平面镜的左侧,该怎么画呢? 英语翻译要准确的 作文 分享快乐(600字)非原创的不要急!谁在11月21日傍晚6点写出好的就加分速度分享的快乐不少于600字的记述文急!先回答先得15分 1 一件衣服8折后售价240元 降价多少元?2 一件衣服打八折卖出 比原价少了40元 原价多少元3 学校买了54本新书 其中科技书占六分之一 文艺书占三分之一 文艺书比科技书多多少本?4 2号选手正好 画出发光点s发出的光线经平面镜反射后过图中p点的光路图 我想你应该从你的朋友们那里借一些钱.英语翻译 关于执著的作文 食堂运来一批煤,计划每天烧180千克可烧25天实际每天少烧30实际烧多少天【算式】 谁借了我的伞,你借了谁的雨伞?英文翻译谢谢 作文:执著你是怎样理解执著的?你可曾执著于某一事物?以执著为话题,写一篇不少于500字的作文. 一批煤计划每天烧180千克,可烧25天,实际每天少烧30千克,实际烧几天(用三种方法解答) 【语文作文】求“善待他人”的开头结尾!是记叙文! 执著 作文 怎样根据花盆的土壤浇水? 同志们,有没有关于分享的作文新的,这里的我全读完了,最好是记叙文 以执著为话题的作文 四年级写云的作文 求《却道天凉好个秋》记叙文作文开头. 《执着》作文如题,《执着》的作文800字左右 中华传统文化作文短一些 作文怎么开头?记叙文 作文 我依然执着要写关于如何克服挫折的事例,要身边的小事,越小越好,不要名人的,要是记叙文, 食堂上月烧煤5吨,本月节约0.2吨,本月烧煤比上月节约百分之几 食堂运回一批煤,原计划每天烧180kg可以烧30天.由于改进炉灶,每天烧150kg.改进炉灶后这批煤可烧多少天(先判断是什么比例,再写等量关系,再用方程解答) 四年级成长作文怎么写?谢谢!感谢啊! 花盆既有粗糙的瓦盆,又有光洁的瓷盆.学习了呼吸作用的知识后,你认为哪种花盆更利于花卉生长?为什么?在养花过程中,我们还应该注意哪些问题? 学校原来长方形操场长80米,新学期扩建后,长和宽各增加10米,新操场的面积比原来增加了1500平方米.新操的面积是多少?(不用设未知数怎么解) 你让我哭了 翻译成英文 卖花的为什么要在花卉下面倒扣皮盆或者塑料花盆? 一个长方形操场原长80米,新学期扩建后,长和宽分别增加10米,增加后的面积比原来多1500平方米.新操场是多少平方米? 请帮忙把"你让我哭泣,让我微笑,最终却让我痛彻心扉"翻译成英语 花盆里有花草还能放蚯蚓吗? 急求作文简要内容!题目《分享快乐》,开头要怎么写比较好?内容是写一件快乐的事,最好写哪些? 让我哭泣的回忆用英语怎么说?还有哭泣的单词 急用啊 一块长方形草坪180平方米,宽为9米,长要增加到65米,宽不变.扩大后的面积是多少平方米?比原来增加了多少平 求各种题目的作文开头结尾最不会写作文,希望给写几个好的开头结尾, 作文:以“执著”为话题以“执著”为话题写一篇600字作文(只需提供相关的事例) 一块长方形草坪的面积是108平方米宽是9米,长是多少米? 一个圆形水池的围台长60米,如果在此台上每隔3米放一盆花,一共能放多少盆? 写个以执著为话题的作文我要怎么写这个作文呀,有谁来帮帮我写一个呢. 某食堂三月份烧煤1.2吨,四月份烧煤比三月份节约了1/4,四月份烧煤多少吨? 请问这盆盆景叫什么? 120平方米长方形的草坪将长扩大三倍宽不变,求扩建后的面积 中华传统文化 作文怎么写 有一个圆形喷水池的一周共放了30盆鲜花,每两盆花之间相隔5分米.问水池的一周长多少分米? 再破的花盆也能开出美丽的花阅读答案 英语翻译我的意思是想说:我哭的时候,需要一个肩膀?但是不知在哪?我的肩膀还有呀... 在五边形的水池摆花,每边摆5盆,最少要摆多少盆花? 《再破的花盆也能开出美丽的花》阅读理解答案 要标准请问第六题:“那竟是一只废弃的破脸盆”带点的词是? 用英语翻译“他的头靠在他的肩膀上”,自己翻译,别系统翻! 有一堆煤,每天烧4.5吨,可以烧28天,如果每天节约0.3吨,这堆煤可以少几天? 《再破的花盆也能开出美丽的花》“那竟是一只废弃的破脸盆”中的“竟”是什么意思? 街心公园内有一圆形荷花水石为庆祝劳动节要在水池周围每隔两米摆上一盆花一共摆了80盆,水池的周长是少 我的梦想作文开头 有什么花适合种在那种漂亮的小花盆里 a、b为两面平面镜,入射光线m与反射光线n互相平行,求∠3.要过程!!!!!!!!!!!!!!! 写以我的梦想开头作文前两段完美一点的 再破的花盆也能开出美丽的花文章题目有几层含义 英语翻译是不是 LET ME GET THROUGHT 什么什么的 急求高一作文我的高中我的梦开头!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘