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

用Delphi4的QReport部件生成报表

HTML文档下载 WORD文档下载 PDF文档下载
用Delphi4的QReport部件生成报表

---- 用户在使用数据库应用程序时经常要生成报表,利用Delphi 4的QReport 部件,可以帮助我们快速方便地生成报表。这里以一个设备管理报表为例说明如何用QReport部件与Query部件设计从多个数据表中生成报表。

---- 一、 所用数据库

---- 这里用到三个Foxpro数据表,DLBMK(设备大类编码)、SBXHK(设备型号及配置)、BMSBK(设备所在部门),存放在D:\SB目录下。其库结构如下:

---- (一) DLBMK

字段名称 字段类型 解释

1. DLBH N3 设备大类的编号

2. DLMC C20 设备大类的名称

(二)SBXHK

字段名称 字段类型 解释

1. XHBM N3 设备型号的编码

2. DLBH N3 同DLBMK中的DLBH字段

3. SBXH C30 设备型号

4. SBPZ C30 设备配置

5. SBSL N3 设备数量

(三)BMSBK

字段名称 字段类型 解释

1. BMMC C20 部门名称

2. XHBM N3 同SBXHK中的XHBM字段

3. SL N3 数量

---- 利用这三个数据表,要生成一个只有电脑部有而其他部门没有的设备型号的情况。

---- 二、 程序中的部件及属性

---- 程序中有两个窗体:主窗体mainForm与报表窗体repForm。

---- 主窗体mainForm中有两个TButton部件,设置如下:

部件 属性及属性值

PreviewBtn:TButton Caption:预览

PrintBtn: TButton Caption:打印

---- 报表窗体repForm中的部件及属性设置如下:

部件 属性及属性值

Query1: TQuery DatabaseName:d:\sb

Active: True

Qrep1: TQuickrep Dataset:query1

TitleBand1: TQRBand BandType:rbTitle

HeadBand1: TQRBand BandType:rbColumnHeader

DrawLeft : True

DrawRight : True

DrawTop : True

DrawBottom : True

DetailBand1: TQRBand BandType:rbDetail

DrawLeft : True

DrawRight : True

DrawTop : True

DrawBottom : True

ChildBand1: TQRChildBand ParentBand:DetailBand1

DrawLeft : True

DrawRight : True

DrawTop : True

DrawBottom : True

TitleLabel: TQRLabel Caption:设备统计表

DlmcLabel: TQRLabel Caption:类别

SbxhLabel: TQRLabel Caption:型号

SbpzLabel: TQRLabel Caption:配置

SbslLabel: TQRLabel Caption:数量

DlmcDBText: TQRDBText Dataset:Query1

Datafield: dlmc

SbxhDBText: TQRDBText Dataset:Query1

Datafield: sbxh

SbpzDBText: TQRDBText Dataset:Query1

Datafield: sbpz

SbslDBText: TQRDBtext Dataset:Query1

Datafield: sbsl

Shape1~9: TQRShape Shape:qrsVertline

Top:0

Width:1

Query1的SQL属性设置为:

select a.dlbh

a.dlmc

b.sbxh

b.sbpz

b.sbsl

from dlbmk a

sbxhk b

where a.dlbh=b.dlbh and b.xhbm not in

(select xhbm from bmsbk where trim(bmmc)<>’电脑部’)

order by a.dlbh

---- 设置几个TQRband部件的DrawLeft、DrawRight、DrawTop、DrawBottom属性值为True

是为了打印表格边框及横线。利用TQRShape部件,是为了打印出表格竖线。DlmcDBText放置在DetailBand1上,其它几个TQRDBText部件放置在ChildBand1上,Shape1~3放置在HeadBand1上,Shape4~6放置在DetailBand1上

Shape7~9放置在ChildBand1上。

---- 三、 为程序增加代码

---- 1.mainForm窗体中的两个按钮事件

procedure TmainForm.PreviewBtnClick(Sender : TObject)

begin

repForm.Qrep1.Preview;

end;

procedure TmainFormPrintBtnClick(Sender : TObject)

begin

repForm.Qrep1.Print;

end;

---- 2.HeadBand1、DetailBand1及ChildBand1的BeforePrint事件

procedure TrepForm.HeadBand1Before

Print(Sender : TQRCustomBand;

Var PrintBand : Boolean)

Begin

Shape1.Height:=HeadBand1.Height;

Shape2.Height:=HeadBand1.Height;

Shape3.Height:=HeadBand1.Height;

End;

procedure TrepForm.DetailBand1Before

Print(Sender : TQRCustomBand;

Var PrintBand : Boolean)

begin

PrintBand:=bh< >Query1[‘dlbh’];

if PrintBand then

begin

bh:=Query1[‘dlbh’];

Shape4.Height:=DetailBand1.Height;

Shape5.Height:=DetailBand1.Height;

Shape6.Height:=DetailBand1.Height;

end

end;

procedure TrepForm.ChildBand1Before

Print(Sender : TQRCustomBand;

Var PrintBand : Boolean)

Begin

Shape7.Height:=ChildBand1.Height;

Shape8.Height:=ChildBand1.Height;

Shape9.Height:=ChildBand1.Height;

End;

bh应在变量定义部分定义:

Var bh : shortint=0;

---- 几个TQRShape部件的高度(Height)与所在TQRBand 部件保持一致,使竖线打印得整齐。如果在设计阶段调整了TQRBand部件的高度,也不会出现竖线断线或过长的情况。

---- 在DetailBand1的BeforePrint事件中用PrintBand进行控制,可使每个设备大类名称只需打印一次,而不是每个型号都对应打印一次大类名称。因为dlbh字段的值都大于0,bh初值设为0使它与任一记录的dlbh字段的值都不同,以确保第一个大类名称被打印。这样就生成了一个从多个数据表中提取数据,并带有表格线的数据报表。

---- 注:本例工程文件为sbgl.dpr,原程序文件为main.pas和sbrep.pas,若要测试请将dlbmk.dbf、 sbxhk.dbf、bmsbk.dbf三个文件放在d:\sb目录下。

QQ手机浏览器推出5.1播霸版 内置强解码引擎支持22种视频格式 Ceph浅析(上):概况与设计思想 IBM:你好,互联网 光网络SDN化的四大驱动力及两条路径 《近匠》酷传:解除App发布和监控痛苦 有道heX正式开源:用HTML5和NodeJS开发桌面应用 在3D空间创作:英大学生发明增强现实设计产品 2014年3月浏览器份额:Chrome终超Firefox 成市场第二大浏览器 2014年3月操作系统份额:Windows 7大涨,Windows XP仍未跌破27%大关 路透社:iPhone 6仅有4.7寸版本,将于5月量产,5.5寸遭冷冻 高端实战技术培训:OpenStack企业应用之路 据统计,Oracle已击败IBM跃居软件行业第二 【技术博客推荐】2014年值得关注的10个开源项目 Intel在深圳建立智能设备创新中心 将投入1亿美元 免费获得价值1200元Unity2014顶级盛会门票! IBM公布Softlayer中国业务落地时间表 推荐30款最佳的数据可视化工具 数据库迁移测试:选白盒还是黑盒? 东软发布首款英特尔架构企业级移动终端解决方案 英特尔与腾讯创立游戏创新实验室 推进RealSense技术 《近匠》系列沙龙之探寻绝密武器:移动跨平台开发 iOS走向开放:苹果新推iAd Workbench广告服务 腾讯薛伟:快速模型更新在精准广告推荐中的应用 微软Build2014第一天要点精华汇总(组图) Windows 8.1 Update 1五大改变:任务栏回归,增强鼠标支持(图) 【十大院士】怀进鹏:全球的计算模式可能重新形成 微软Build2014第一天应了解的15件事 TypeScript1.0发布,完美支持Visual Studio系列产品 欲与Android展开价格战,微软宣布在移动设备上免费开放Windows 2014深圳英特尔信息技术峰会次日要点汇总 4月4日:微软39周岁,生日快乐! Dll函数问题 咋判断用户点的四点能围成一个四边形? 网站中的某一页嵌入VB的AtiveX 控件,客户端能访问网站,但不能打开AtiveX控件。。。高分 请问怎么把 string 型转换成 System.Data.SqlDbType 型? 机器无法启动 主板有问题吗 高分请教 创建不了C#Web项目,急!!!(刚学C#) [求助] 用fopen函数读不出URL文件? 怎么判断listview是否有一个item被选中? 请说一下硬盘容量和内存容量的关系! ▄▅▆▇█ 水园的大背景离不开吵架 █▇▆▅▄ 请教mm有个问题! linux下的编程问题 以Oracle为例说明如何通过ODBC将数据库中的指定表导出到MDB数据库。(原创) 关于一种特殊按钮 SQL语句小问题!!在线等待! 想学ColdFusion 请看我的转载的贴子 Troj_Hacline.A是什么病毒? 关于XML的问题,150分赠送,急 dll问题。很简单。 感慨!!!(潜水一年,吐个泡,顺便发表一点意见) 帮个忙 怎么在Installshield中创建对话框,并操作ACCESS数据库? 连续给分:邮件服务器防病毒问题! 我想编译一个像API一样的dll 启动rose就出错,高手来看,100分 关于打印的一个问题 急!!!请提供一段设置Session的全部代码,谢谢!! 请问,从第二帧开始播放的代码的什么??? 老师要求编写五子棋的程序可是我实在想不出该怎么设定估价函数啊帮帮忙啊? 感觉压力比较大,活不下去,想跳楼自杀的进来侃侃 一个关于php提交表单的问题。 各位大侠,要命问题! 怎么在Installshield中创建对话框,并操作ACCESS数据库? win2000server的管理员密码让人改了,怎么办呀! 太气愤了,帮帮我? 用BDE连接MS SQL SERVER,为什么运行后出现未知用户名或密码的错误? datagrid中能不能进行统计 如何编写“outlook”风格的界面 如何实现flash截图?我研究了好久也不明白,希高手指点!(在线等待) 程序调用的DLL 在delphi中,用ADO如何实现将SQL中多表导出到一个Access中? 无聊啊无聊 想考软工???? Socket奇怪的问题! foxpro中如何实现按一按钮启动word和excel,并且直接弹出打开文件对话框? 关于分级权限管理(300分) 紧急求救!!!!!!!! 客户端web服务是否需要别的控件支持 帮帮我,朋友们请进.... Datareport问题! 注塑模和冲压模那个更快挣钱 注塑模与冲压模有何区别 人非生而知之者后一句是什么? 冲压模和注塑模的区别是什么~那个比较难!在说一下两个的前景~然后在说一下那个比较难搞~还有个没有说清楚~那个比较难点 缓冲溶液的缓冲容量与( )和( )有关? 人非生而知之者的下一句是什么 如图,方格纸中△BEC的三个顶点分别在小正方形的顶点上,请你在图中在画一个顶点都在格点上的三角形与△BEC全等 画出图来 在空气中燃烧木片和木炭各有什么现象? 怎样计算 木片夹住木块的弹力?我觉得这里的弹力和摩擦力的方向根本是不一样的啊? 带电粒子在磁场中得偏转的一道题如图所示,真空中有(r,0)为圆心,半径为r的圆柱形匀强磁场区域,磁场的磁感应强度大小为B,方向垂直于纸面向里,在y=r的虚线上方足够大的范围内,有方向水 踩爆气球为什么很爽? 人非生而知之者 下一句 “芜湖市三山区峨桥茶市”翻译成英文 踩爆气球的感觉? 人非生而知之者,孰能无惑?怎么改成陈诉句 安徽省芜湖市团结一村门面房四幢1号 英文怎么翻译呢 踩爆气球都用到了什么力?请各位ggjj速回答. 阴影长方形的面积是多少 为什么人们会产生爱情 (化学问题)把什么滴入水中能使泡沫融化,泡沫是否和脂肪有相同成分.鱼油中是否含有这种成分?为什么有的鱼油能融化,有的鱼油不能融化,区别是不是里面有特殊化学成分我说的是垫冰箱电视 人非生而知之者,孰能无惑?出自谁? 风能最早利用在什么上? 人非生而知之者 之的意义 人非生而知之者,岂能无师?出自那篇文章的一句话 英语翻译芜湖翻译公司哪家最好? 爱……恨……真的是相对吗爱恨是什么啊 怎么样分辨塑胶与橡胶 如果把南极的企鹅养在我们居住的地区,要注意什么问题?现在回答,有急用! 南亚三条大河是那三条? 有好多的时候,都会觉得会恨什么东西,看这个东西其实却不是心里想恨 巧而相反是心里爱的 ,那这个到底是怎么回事呢,是不是爱到了最后都会变成恨? 能不能把南极的企鹅放到北极去养? “双袖龙钟泪不干”的前一句是什么? 恨只是因为爱而产生的吗?有亲情,友情.爱情.恨只是因为爱来的吗? 把南极的企鹅移养到我们的居住地区应注意什么? 为什么 人们会产生爱情. 如何将做脱脂奶时提取的脂肪块,溶化回牛奶中? 如果把沙漠中的仙人掌和南极的企鹅移居到福建这种温暖的地方,要注意什么问题? 双袖龙钟泪不干 龙钟的意思 英语翻译 妹妹可以摸哥哥的身体吗 双袖龙钟泪不干是何意?运用了什么修辞手法,有什么作用 这道题怎么做?为什么这么做?翻译? 求大神帮忙,急用 望车友们说下十分浪~荡的对我大秀胴体的妹妹,给我吧大神们,三天两头我要要出差去别的城市,无聊的时候不知道如何打发呢,上次看过网吧隔壁的大叔看那些很好看的网络女的演绎哦,可是自 ,双袖龙钟泪不干.上一句是什么 英语翻译Thought the window,you can snow------ ------- the sky 鸡也需要氧气对吧.小妹有问鸡也需要氧气,对吧,如果是的,那我想问,其实当鸡还是蛋的时候就有生命迹象了,那个时候它就不需要氧气吗,这哺乳动物不一样的是孩子在肚子中有妈妈给氧,那鸡 双袖龙钟泪不干 人非生而知之者的下一句? 春蚕到死丝方尽 蜡炬成灰泪始干用了什么修辞手法要说具体 巧克力加热融化后加入牛奶能凝固吗?10:1 人非生而知之者,( ) 一鼓作气,(人非生而知之者,( ) 一鼓作气,( ),三而( ) 第一个答对给好评! 春蚕到死丝方尽 蜡炬成灰泪始干是什么修辞手法 牛奶里面加上融化了的巧克力加热之后打出泡沫的那个东西叫什么来着如题~~~ 爱的深恨的就深对吗 春蚕到死丝方尽 蜡炬成灰泪始干运用的修辞手法我在网上查到了竟然有拟人、比喻、谐音、双关、对偶这么几种.但我思来想去,比喻、谐音、双关在哪里?还有这句话到底是比喻还是拟人?请 融化巧克力的時候能加牛奶嗎? 为什么爱得很深,而最后也恨得更深? 怎样确定带电粒子在磁场中的偏转方向比如 一个电子水平向右运动 加以垂直于运动方向的磁场 怎样偏转 为什么细小的木片比大块的木棒要容易燃烧从燃料充分燃烧的因素解释 为什么嫩江不是松花江源头要算长白山为源头 伊朗议员:伊朗已暂停提炼纯度20%浓澳大利亚山火为军事训练导致 澳国防部全球最适宜工作跨国公司排行 谷歌名列美一农民发现两副恐龙骨架 有望拍出2澳大利亚灭火消防飞机坠毁 驾驶员被证国考网上报名结束 37个职位报名比例专家称考公务员热反映收入分配、社保制东京举行国际数字博览会 显示器也能卷美媒曝美无人机行动得到巴默许 巴政府伊朗议员:伊朗已暂停提炼纯度20%浓国际社会讨论在南极建立迄今规模最大海世界泰拳王与中国功夫王广东见面会上大印度总理辛格:印中需要合作而不是对抗印度总理辛格:印中需要合作而不是对抗中国央行与美国联邦存款保险公司签署谅纽约大学教授:放松众筹融资限制意义非网购成为中国消费新势力 规模跃居世界人大常委会询问财政科技资金:好钢要用万钢月内再提严惩科研腐败 强调四措并联合国中国籍高官徐浩良:国际公务员是浙江遂昌法院QQ视频四国连线 审理继法国近年枪击事件“两桶油”成为市场新方向标广东21家医药企业成被告一年修6次无济于事与火车站合体疯牛行情春节前后将终结活动预告陈宝国为演农民不惜脸肿“新华视点”四问社保缴费基数连年上涨万达院线成“院线第一股”或是改革契机失业登记打破户籍限制具双重价值下一篇2010葛兰许闪耀亮相中国越秀绿色建筑空调“村民车间”好宽松 主妇争当“上班族一年超2000场美食节奥飞动漫进军在线教育领域美国男子坐冤狱近40年 大度原谅当年是取消出租车公司暴利模式的时候了2015我这样环游世界
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘