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

也谈为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;

如何判断自己是否适合自由职业? 创造·连接·成就:UNITE 2015 BEIJING圆满落幕 IT互联网人才招聘市场特点:人少钱多疯狂抢? React Native并非原生 Instagram Apple Watch应用设计师:对原有App全部重新思考 腾讯网移动端H5页面设计实战分享 Kendo UI和AngularJS常见问题解析 Elevator.js:模拟电梯运行的“返回顶部”JS插件 Java,传奇的一生! 约吗?Java二十周年特别策划——寻找Java大牛! 走近英特尔软件技术王牌之师:系统技术和优化部门 新兴技术袭来,Web开发如何抉择? 新创社交平台Tsu 5周註冊用户破百万秘訣 Google Play:助力中国开发者的海外梦想 JPHP——一款基于JVM的新PHP编译器 舌尖上的CTO——小杨生煎的持续交付 《近匠》滴答清单,跨平台云同步的任务管理工具 DJI与优酷土豆战略合作:提升UGC价值,先内容再营销 Android性能优化典范(二) 从三大运营商联手 看电视游戏背后的现状 【工具推荐】Vert.x——非阻塞、高并发的编程开发框架 Google搜索在确定结果排名时会将网站的移动设备适用性作为考量因素 W3C首次发布SVG标记、SVG轮廓标准工作草案 第七届中国云计算大会 | 首批主会演讲嘉宾和议题公布(表) 安沃传媒创始人王旭东:开发者从移动广告获利的黄金时代已经来临 【舌尖上的CTO】砂锅馄饨的交付件 微软新Visual Studio Code开发工具支持Mac和Linux 科技新创公司想做大?从CNN记者跳槽Snapchat谈起 Java二十年特别奉献:晒博文、赢大奖! 《近匠》华为创新总监蔡绪鹏:智能手表的三大感知与未解难题 从Samurai-Native框架开发谈React Native 为何ACCESS出现“#已删除的”的记录? 欲交Java良师益友,愿伸援助之手请进。 关于复选框的初始问题(100份在线4:00-8:00 怎样在asp中把一个文件变成临时文件?? 求解奇怪问题,非常奇怪,分不够再加! 高分求IPMI开发资料 如何用Jtree将一个xml文件显示出来? 招聘系统分析员(北京) 深圳兼职电脑维护,哪个有兴趣? 求购 产品进销存源代码 VB or c# +SQL SERVER @@@@@@ 不送分而送现金!!!!! 谁能教我配置PHP服务器啊? 帮我看一下, 紧急求救!!!jsp的出错信息! 如何合并两个Image对象为一个Image对象 还有一个问题,帮帮我嘛! 高分请教高手!简单,看了你也是高手 代码编辑器的问题。 计论:大家都用什么工具进行数据库的比较? 我高中的班主任 请大家评评理,特别是JAVA版版主! 这样的SQL语句怎么写啊 form切换!VB.net里面如何在语句里调出别的FORM 如何用ADO连接EXCEL数据? 什么是上溯造型? 如何把console.write 输出很多内容保存到文件?thread.join()如何使用? 我想实现像网络蚂蚁那样在IE上点右键,把这个IE中的信息传送给我主程序,现在遇到两个问题! 控件的布局问题? 实例化算不算继承? 急!!!!关于SQL数据堵塞 请大家推荐一下哪个汇编集成环境比较好用?DOS下用什么?WIN下用什么? 向各位请教两个tomcat的问题:(谢谢) 高手请问 拉格朗日算法VB=>BCB 求ASP的字符串比较函数. 找C++BUILDER高手!! 我在做演示光盘,用camtasia录制的屏幕图象,可是在客户的机器上播放不出来,在线等待,解决问题马上揭贴! fastreport如何不进行预览而直接打印! 不使用下拉数据窗口,如何实现输入产品代码即可显示产品名称 大哥救命啊 一个简单问题,在一个Win32 applicaion 中如何使用CString变量! 在线等待! 倒霉!!!平白无故被副总扣了100点! 我高中的班主任 JBuilder的爱好者,请留下您的联系方式!谢谢,让我们共同进步! 未指定默认数据库驱动…… VC中如何添加数据库支持? 栽ejb-jar.xml中部署的Ejb QL怎么和Home接口中声明的查询连接起来,必须以ejbSelect开头吗? 如何通过程序调用荧光笔操作?急,在线等!高分相送啊! 表格宽度 发现我的作文水平如果参加今年高考能得满分(仅限作文) 送100分,JB7+JBoss下,用CMP方式建两个EntityBean,比如DIfsZxx(主键所在实体),DIfsZxxRw(外建所在实体),当两者之间关系设为。。。。 谁能够告诉我所有ACCESS数据类型的英文名字?偶在VB中有用到! 请问如何才能使用asp连接foxpro数据库,使用oledb 如图,在平面直角坐标系中,四边形ABCD是菱形,AD=4,点A的坐标是(0,2),求点B、C、D的坐标 我现在进入一家国际物流公司急需取一个英文名,姓葛全名葛敏.24岁,性格外向,双鱼座,独立、友善、随和、较真,想取个好记顺口有意义个性的英文名,谢谢!呵呵,不好意思,忘了说明我是女生 丈二和尚——摸不着头脑的反义歇后语 翻译一句表示英语不怎么好希望谅解的句子.请手工翻译:"我很担心我这不怎么好的英语,还请你谅解.”是不是要用到poor english?谢谢. 如右下图所示,已知E,F,G,H分别是正方形ABCD的各边的中点,正方形ABCD的面积是80平方厘米求阴影部分面积 已知f(x)为奇函数,当x>0时,f(x)=x²+1,求f(x)的解析式 x=0:pi/100:6*pi;b=(cos(x)+i*sin(x))*(x);然后就提示Error using ==> mtimesInner matrix dimensions must agree.了,我是新手,刚接触matlab 如图,已知E、F、G、H分别是正方形ABCD的中点,正方形ABCD的面积是80平方厘米,求蓝色部分面积 角动量与向心力有什么关系我一直都不懂什么是角动量 就连在睡梦中也想着它(打一成语) 求阴影部分面积已知E、F、G、H分别是正方形ABCD的中点,正方形ABCD的面积是80平方如图,在正方形ABCD中,红色、绿色正方形的面积分别为52和13,且红、绿两个正方形有一个顶点重合.黄色正方形的 丈二和尚—摸不着头脑拜托! 连在睡梦中也想着他 根据意思写成语 如图23所示,已知E,F,G,H分别是正方形ABCD各边的中点,正方形ABCD的面积是80平 为什么丈二和尚就摸不着头脑一直都不明白为什么丈二和尚摸不着头脑,明明摸不摸的到自己的头和身高没啥关系的啊 难以说出其中的奥妙.也用来形容人语言、行动使人无法理解. 请问下大家ppt中用毛笔写字画面是怎么做的?g有晓得的人就说下哈,不好意思,麻烦你们了9dX 从司母戊鼎的铸造中,你能体会到当时人们的合作精神吗 不能说出其中奥妙,无法理解或不合常理(成语) 8月14号凌晨的月掩金星用肉眼是否看的到? samsung electronics co, 葛来美用英文怎么说? 初三的二次函数的题,有图,点图 计算2sin45°+(√21-9)∧0-|-2|=( ). 求关于葛家族的英文介绍,还要中文翻译 初三二次函数题(有图)已知抛物线 y=-0.25x平方+x 顶点为A,与X轴交于点B,且过原点,若C在对称轴上,D在抛物线上,问以 O、C、D、B为边的四边形要为平行四边形,求D点坐标.(有三个答案) 已知f(x+1/x)=x²+1/x²,求f(x)的解析式 有一首歌歌词是:请你现实一点,别活在虚幻里面.失败也在所难免,未来在你手心里面.这首歌叫什么? 葛的英文发音是怎样的? 第一题怎么做T^T,学霸速来#^_^# 连成复合词1water A berry2 birth B man3straw c melon4school D boy翻译 金星的父母是干什么的 4,5两题求解答,T^T 《与朱元思书》中统领全文的句子是什么? lim[f(2x)/x]=1/3 则 lim[x/f(3x)]= (x-0) x²-4y²-x-2y 分解因式 解释词语中横前的字或词标-新立异革-故鼎新截然-不同怒气 冲冲-触类-旁通一-如既往 问问大家ppt中用毛笔写字画面是怎么做的? 请问CO.LTD和OTV是什么意思?请问CO.LTD和OTV是什么意思?请赶快回答! 表示‘叫’的词语 不是动物的词 问问大家ppt中用毛笔写字画面是怎么做的?我想知道到,谢谢各位了{随机数z 《宋书》列传第九 蒯恩 传译文蒯恩,字道恩,兰陵承人也.高祖征孙恩,县差为征民,充乙士,使伐马刍.恩常负大束,兼倍余人,每舍刍于地,叹曰:“大丈夫弯弓三石,柰何充马士!”高祖闻之,即给器 《与朱元思书》里表现全文的句子是?有急用! 请问一下大家ppt中用毛笔写字画面是怎么做的?真心感谢大伙了{随机数q f ((x -1)/(x +4))=(x ²-1)/(x ²+1)问 f (x )解析式 1、《与朱元思书》中统领全文的中心句是:.作者抒发感慨卒章显旨的句子是:; . 问一道初三二次函数题半径是2的园,若半径增加x时,增加的面积s关于x的关系式怎样?当x=2时,增加的面积是多少? 丈二和尚摸不着头脑歇后语 英语单词记忆捷径词素认知怎么样 请问下有谁知道ppt中用毛笔写字画面是怎么做的?有谁了解的告诉下哟, 歇后语丈二和尚摸不着头脑的前提是什么我在说清楚点,免得有些书读得少的人误解.歇后语填空:( )——摸不着头脑答案为二和尚摸不着头脑是否正确? 我们永远都这样好吗?的英语单词 名字是芳琴,姓葛,取一个英文名字 丈二和尚摸不着头脑,再把这句歇后语用在句子中 六年级上册语文一单元读读写写和读读记记(人教版的)!注意是人教版6年级上册语文.时间今天以内, 麻烦大家看一下ppt中用毛笔写字画面是怎么做的?有晓得的人就说下哈, 歇后语的解释(急用)丈二和尚—摸不着头脑、半夜敲钟—一鸣惊人请尽快回答! 好吧我原谅你 但是这次原谅了 还有下次吗 我不希望有了 翻译英文 本人姓葛,男生,18岁,求一个英文名,有个老外想了半天,让我叫George(农夫)晕了,不能靠她了, 已知f[(1-x)/(1+x)]=(1-x²)/(1+x²)则f(x)的解析式可取为f(x)= 印度德里频发未成年人性侵案 作案者为星巴克CEO辩解在中国高定价 称报道伊朗暂停提炼20%纯度铀浓缩 距武器星巴克CEO:对中国媒体抱怨咖啡售价世界最高大的狗在美国去世 存活年龄为土耳其选择中国导弹,有人欢喜有人忧阿拉法特死因排除钋中毒 不排除其他毒李肇星:国内某大企业家在欧洲浪费粮食租金高,房源少,常搬家 租房住咋就这四部门:国家工作人员强奸猥亵未成年人北京大气污染听证会:\"停车3分钟须长沙贫困村举债千万建楼 8名工作人员嘉兴老师婚外恋5年给女学生打款近6万日古代地图“反证”侵略史杭州市人力社保局咨询服务中心招聘工作浙江省政协今起公开征集提案线索受冷空气影响 今天到周日杭州继续晴朗全国版失信者黑名单出炉 浙江有三种办商合杭高铁项目建议书获批 最快或于2杭州地铁地铁3号线缩短十公里临平新城打造杭州城东副中心 计划20图文:当心酒精肝、急性肝病“节后算账图文:2.26米小伙征婚成功 1.5员工暗中假注册 开办同类公司友情跨越半个多世纪乌克兰总统宣布与反对派暂时“休战”芝加哥农产品期价19日涨跌不一安倍助手不满奥巴马政府:感到失望的是外媒:乌克兰派“金雕”特种部队强攻反韩将加强对争议岛屿控制 称日正加强控朱达志:“排外”不是香港包容的个性腾讯联姻大众点评网楚天都市报讯 李响 著楚天都市报讯 严歌苓 著东风8亿欧元入股标致雪铁龙看电视忘了形 锅里菜烧糊了首轮新股平均涨99%本报联手得意生活网 邀你参与婚礼消费住建部回应四大住房热点问题患病女子捡块砖 接连砸坏7辆车足协杯扩军武汉四球队参赛楚天都市报讯 □记者闻蔚
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘