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

也谈为Delphi中数据库报表加网格

HTML文档下载 WORD文档下载 PDF文档下载
也谈为Delphi中数据库报表加网格

看了贵报第63期《为Delphi 3.0中数据库报表加上网格线》一文,笔者发现原文中的程序在不同分辨率的打印机(如180dpi的针式打印机和600dpi的激光打印机)上打印表格,效果会完全不同。如作者以针打作为他的输出打印机设计的程序,在激光打印机上输出,就会发现表格和文字错位,而且表格会打印得很小。而且原文中打印坐标的确定,必须靠反复的试验才能达到比较满意的效果。

针对原目标,笔者设计了一段程序。首先在窗体上添加一个DBGrid来显示我们所要打印的数据,在这里,DBGrid不只是起到显示数据的作用,而且用户对DBGrid作的调整,例如改变了各字段的排列顺序,各字段的显示宽度等,都将直接反映到打印结果中去,也就是说,我们实际上就是要把DBGrid的内容直接输出到打印机。以下程序在Win 98+Delphi 4下编译通过,代码如下:

procedure TForm1.Button2Click(Sender: TObject);

const

LeftBlank=1; //定义页边距,单位厘米

RightBlank=1;

TopBlank=1;

BottomBlank=1;

var

PointX

PointY:integer;

PointScale

PrintStep:integer;

s:string;

x

y:integer;

i:integer;

begin //获取当前打印机的分辨率

PointX:=Trunc(GetDeviceCaps(Printer.Handle

LOGPIXELSX)/2.54);

PointY:=Trunc(GetDeviceCaps(Printer.Handle

LOGPIXELSY)/2.54);

//根据打印机和屏幕的分辨率计算出从屏幕转换到打印机的比例 

PointScale:=Trunc(GetDeviceCaps(Printer.Handle

LOGPIXELSX)

/Screen.PixelsPerInch+0.5); //横向打印

printer.Orientation:=poLandscape;

//打印的字体和大小

printer.Canvas.Font.Name:=′宋体′;

printer.canvas.Font.Size:=10;

//根据字体的大小确定每行的高度

s:=′漳州市刑警支队′;

PrintStep:=printer.canvas.TextHeight(s)+16;

//打印的起点位置

x:=PointX*LeftBlank;

y:=PointY*TopBlank;

//DataSource1是DBGrid1所连接的数据源

if ((DataSource1.DataSet).Active=true) and ((DataSource1.DataSet).RecordCount〉0) then

begin

printer.BeginDoc;

(DataSource1.DataSet).First;

while not (DataSource1.DataSet).Eof do

begin //打印DBGrid中的所有列

for i:=0 to DBGrid1.FieldCount-1 do

begin

//假如所要打印的列超出了打印范围,则忽略该列

if (x+DBGrid1.Columns.Items[i].Width*PointScale)〈=(Printer.PageWidth-PointX*RightBlank) then

begin //画表格线

//每页的第一行打印表头

Printer.Canvas.Rectangle(x

y

x+DBGrid1.Columns.

Items[i].Width*PointScale

y+PrintStep);

if y=PointY*TopBlank then

Printer.Canvas.TextOut(x+8

y+8

DBGrid1.Columns[i].Title.Caption)

else

Printer.Canvas.TextOut(x+8

y+8

DBGrid1.Fields[i].asString);

end; //计算下一列的横坐标

x:=x+DBGrid1.Columns.Items[i].Width*PointScale;

end;

if not (y=PointY*TopBlank) then

(DataSource1.DataSet).next;

x:=PointX*LeftBlank;

y:=y+PrintStep; //换页

if (y+PrintStep)〉(Printer.PageHeight-PointY*BottomBlank) then

begin

Printer.NewPage;

y:=PointY*TopBlank;

end;

end;

printer.EndDoc;

(DataSource1.DataSet).First;

Application.MessageBox(′打印完成′

′打印′

32);

end;

end;

谷歌推Chrome API支持HTML5实现本地离线数据存储与同步 Ubuntu开发者预览版将于月底开放下载 因Java漏洞,Facebook遭受恶意软件攻击但未泄密 HTML5预测 取代本地App将成为可能 2013年最佳实习企业:微软仅居第三 助力响应式设计:Adobe发布最新HTML5工具包 VMware控告Hortonworks恶意挖角 2013年大数据真谛:实时分析与批量处理 微软招聘信息证实Windows Blue项目正在推进 研究人员正开发永不会崩溃的计算机 Google:开发者应尽早进入可穿戴式计算 Chrome OS身世及其创始人之谜 谷歌举办Glass Foundry黑客马拉松活动 获80款Glass应用 政府和法律的干预拖慢了云计算发展 AMD打造开放的异构计算标准? Podcasts:苹果史上最烂iOS应用 烂过iOS Maps 日本游戏开发公司谈:如何在激烈的APP世界立足 VC不会告诉你的8件事 Reddit宣布将接受虚拟货币Bitcoin付款 OneID创始人:双因素身份验证无法保护Twitter Opera放弃自家内核转投WebKit的背后 Amazon强攻私有云市场,目标锁定银行 微软的24年数据中心之路 Flurry:约会应用男同性恋用的最多 jQuery消息提示框的简单实现 Mozilla CTO:Mozilla不会转向WebKit 这很重要 Pinterest或超Twitter成第二大社交网站 适合儿童上手的八款编程工具 一周云事件:亚马逊对消费者的吸引力超过苹果 比尔·盖茨对微软创新和手机不满意 让我们一起来做最漂亮的Android界面吧! template class的连接问题。请赐教 求拓扑排序的所有可能序列?50分求教 java程序员? 请问有没有介绍五子棋算法的好网站?我要做一个和机器下的程序!大家帮忙 请问在编程中的例程,行程和过程的定义是什么?以及他们的区别。 该怎么使用 action() 与 mouseDrag()?请看我的程序问题在哪? DELPHI6.0中的最小化事件是什么 marry____不只怎么办了 (★如何初始化控件CMSFexGrid★) 各位兄弟,不知哪里可以查到所有常量的值? 怎么把帽号赋给一个变量?thank 为什么WinXP激活后就不能重装? 困惑--判断颜色是否相同??? (急急急)寻找:win2000/xp/nt/9x 的可安装文件开发包(IFS Kit),送大分 如何在DB2(V5.2)下面实现表的ID自动增加功能? 帖子结不了,在送300分~~~~~~~~~~ 请问oracle那些版本以上叫8i,常用的是哪个版本,有WINDOWS下使用的吗? 我看过的TOOLBAR 都是横着的,可是我现在想做一个竖立这的TOOLBAR 我该怎么做啊!我翻遍了 CODEGURU 可是没有一个这样的例子! 谁有什么好例子 多谢了!! error C2065: 'end1' : undeclared identifier 我怎么用CreateDialog 建立一个对话框呢! 谁有代码!!多谢!CreateDialog(hInst,LPCTSTR"ID_",hWnd,DlgProc); 送小分:怎样在一个对话框程序中产生一个HWND视窗? 在Windows 2000 Professional 下可以装VS.net吗? 关于文件上传问题 关于微软自己的控件下载问题!! 关于打包的问题 急求答案--请教高手:有关IIS与TOMCAT...... 请问有哪为知道,weblogic提供petstore例子,什么地方有详细说明?? 怎么样利用CHtmlViw将参数用POST的方式提交给WEB服务器 不明白.. 请问遇到连接错误该如何解决? pws的日志在什么地方? 在VBA中如何使用ClipBoard 哪里可以下载mastering delphi 6,或者其他有关delphi6的书籍。 vb和access的问题 C++Builder不支持tif或tiff格式怎么办? 为何我的TQuery为只读? 用Winsock传送文件如何判断一个文件已经传送完毕?(一定给分!) VC程序方法的请教。 请问如何禁用一个页面的cache 不好意思,怎么把引号赋给一个变量?thank 关于字体的保存,用序列化 关于oracle连接的一个简单问题 一个构件地址35分,快快来吧。 如何实现实时监测注册表的变化呢??????????? 如何锁定一个SQL SERVER的表? 哪里有Rose2000? MMGG Redhat7.2Ftp,硬盘安装问题求救! 请问怎样设置phpmyadmin带用户名和密码的登陆界面? 本来打算跳楼的,想想还是先来这试试...... 下面代码有什么用? 想问一下关于BDE和ADO组件的对应关系 作文 友情开头 高中英语常用固定短语RT越多越好, 作文:关于校园故事,我身边的友谊的600字作文 求作文黑板上的记忆开头和结尾,中心是 友谊求作文黑板上的记忆开头和结尾,中心是 友谊 ,要点题点中心还有一个开头结尾,题目依旧是黑板上的记忆 中心是学习 作文父母的爱350字左右 关于校园故事,我身边的友谊的600字作文 友情的文章开头 英语中重要(常用)的固定短语英语的常用短语和固定搭配 列出一些 给我一片关于校园生活的作文(要叙事的,600字) 写中秋节晚上的作文(500字) 祝福读后感500字文章 350字关于大自然的作文 中秋寄语 500作文 祝福别人,作文500字以上 保护大自然的作文350字 中秋节的作文500字 短文《生命,生命》的阅读答案 保护大自然的作文一件事情的作文350字左右 以自信为话题的作文 生命·生命(阅读短文额.)“蜜蜂在我眼前消失了,我才觉察自己一直跪在地上.我继续跪了一段时间.”“我”为什么要继续跪一段时间呢?就这个额..呵呵..请务必回答. 发现自然的美 350字以上作文我要一篇4年级的作文,题为《发现自然的美》350字以上就行. 什么什么让生命更精彩作文 生命的高度阅读短文答案 社会调查报告(或时政小论文)2000字可以写调查家乡方面的,小弟不会写,发几篇参考吧 生命因爱更精彩600字作文 以“生命因读书而精彩”为话题作文1.600字左右 2.文体不限(诗歌除外) 3.急用 4.请给我文章,不要教我怎么写之类的. 2007时事政治论文1000字到2000字左右要找一篇2007年时事政治论文,就一件大事件展开讨论的形式 生命因什么什么更精彩作文怎没写 超越生命的爱 阅读短文!这是一个真实的故事.发生在西部的一个极度缺水的沙漠地区.这里每人每天的用水量严格地限定为3斤,这还得靠驻军从很远的地方运来.日常饮用、洗漱、洗菜、洗衣, 求最新时事政治论文 2000字左右.2010的九月或十月的最新时事论文. 求一篇关于友情的作文要有事情的,不要全是议论,而且要自己写的,网上没有的。要写出我们的友情多么深厚,最后我们的友情因为我们而不再存在的。 写一件在成长过程中懂得某个生活道理的作文400字今天就要道55555555555555555555555555555555555555555555555555555555555555555555 我想要一篇关于友情的作文800字(有叙事一篇) 作文《生命,因为追求而精彩》或关于它的素材 初一生求用英语表达的成语作文哪篇成语都可以五六句左右就好 词语不要太难 =顺便在这个作文上做个阅读题 作文,写写你成长中懂得的某种道理600字. 以《生命因追求而美丽》为题的作文!600字或以《生命因追求而精彩》为题的作文!600字! 求一篇带着友谊出发的作文要点评哦. 成长过程总懂得的某种生活道理 800字六年级作文生活中,我们在一天天长大,渐渐懂得了孝敬父母和长辈,懂得了珍惜幸福.写一写成长过程总懂得的某种生活道理. 《追求生命的ㄨㄨ》作文怎么写 800——1000字的作文 以“祝福我的祖国”为话题 有真实事例,以小见大也OK 我已经长大的作文350字 以“生命的追求”为话题的作文的范文以“生命的追求”的话题的作文.请各位给我说说怎么写啊.范文最好. 庆国庆,祝福我的祖国 为话题的作文1000字. 一千字以上 第一个是春节将至,商品的价格会有很大的变化,请做好调查,写一篇关于价格变化方第一个是春节将至,商品的价格会有很大的变化,请做好调查,写一篇关于价格变化方面的小论文,10 怎么找英语课文中的词组最好列举出来,我是初一下学期的,都写出来哦,还要标上课题! 关于怎样理解课文的作文(小学的《卖火柴的小女孩》350字~400字) 求篇与服装有关的英语短文5000单词左右,只要与服装相关的什么都可以~如果连翻译一起给我更好··我会再+50分··真的很重要··我找了好久找不到 以“生活是需要自信的”为作文人生需要自信作文(初中水平的作文) 求作文,350字左右,请以''这件事让我懂得【珍惜 】为题,急 初一的英语写介绍服装商店的作文只须很短,就几句话即可.不过告诉我服装店名应该怎么写?最好帮我写了.我课本的服装店名是:Huangxing Clothes Store SALE!Zig Zag's Clothes Store 我不知道怎么写自己 生活需要自信心的作文! 谁知道关于环境的诗歌或散文,谁知道关于同学之间友谊的诗歌或散文30~100字之间,我着急用! 谁有关于时装的英语文章? 我生活在自信中 作文400字以上 回忆古诗《静夜思》,展开想象,写一篇文章 服装店英语 短文不要复制的! 求助作文素材.题目分别为《感动》《生活需要自信》作家们帮帮忙吧怎么写比较好 有关友谊的开头结尾,句子(好作文中,或自编,非诗句!)谢谢! 帮我找篇关于中国传统服饰的英语短文像介绍旗袍之类的,别太长.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn