登陆注册
36209800000032

第32章 数据库应用程序设计(6)

Bands属性是QuickRep组件最重要的属性,用于设置报表的各个部分(称为带区)。该属性为集合型属性,包含6个子属性,分别对应报表的6个带区,这些子属性都为布尔型,若其值为True,则报表拥有相应的带区;若不想要某个带区,则将相应子属性值设置为False。

Bands属性的6个子属性及其含义如表12-9所示。

在带区上可以放置文本或图形的显示组件。

(2)DataSet属性

DataSet属性指明QuickRep组件将从哪里获得数据,可以是一个Table组件,也可以是一个Query组件,取决于程序员在数据库应用程序中使用哪一个数据集组件。

(3)Option属性

Option属性决定报表的特性。该属性为集合型属性,包含3个布尔型子属性:

Firstpageheader、LastPageFooter和Compression,分别决定报表第一页是否打印页眉、报表最后一页是否打印页脚、报表在产生时是否以紧缩方法存储。

(4)Page属性

Page属性用于设置报表的布局。该属性为集合型属性,包含11个子属性。

(5)RecordCount属性和RecordNumber属性RecordCount属性和RecordNumber属性决定打印的进度,RecordCount属性返回报表中记录的个数,而RecordNumber属性返回报表正在打印第几条记录。

2)QuickRep组件的方法

QuickRep组件的方法主要有以下几种。

(1)Preview方法

Preview方法用于生成报表,并且在屏幕上显示预览窗口。

(2)Print方法

Print方法用于打印报表。

(3)PrinterSetup方法

PrinterSetup方法用于显示打印设置对话框。

2.QRBand组件

在报表制作过程中,QRBand组件的重要性仅次于QuickRep组件,它主要用来放置可打印的对象,如后面要讲到QRLabel组件、QRDBText组件等。

在报表设计中,通常不需要专门放置QRBand组件,当设置QuickRep组件的Bands属性时,选用的带区中自动放置一个相应类型的QRBand组件。

QRBand组件的属性主要有以下几个。

(1)BandType属性

BandType属性用于设置带区的类型。该属性为枚举型属性,有11种取值,其中6种和QuickRep组件的Band属性的6个子属性对应,还有另外5种,共决定带区的11种类型。

(2)Frame属性

Frame属性决定带区的边框特性。该属性为集合型属性,包含7个子属性,分别决定带区四周是否带有边框、边框的颜色、边框的线型和线宽。

(3)HasChild属性

HasChild属性决定带区是否含有子带区。在打印报表时,一个带区的子带区紧随它之后打印。

3.QRLabel组件、QRDBText组件和QRSysData组件

QRBand组件不能用来直接打印信息。要打印信息,还需要在QRBand组件中放置可打印的组件,就是本小节要介绍的QRLabel组件、QRDBText组件和QRSysData组件。

1)RLabel组件

QRLabel组件用于在带区内打印固定文本。

QRLabel组件的Caption属性指定要打印的固定文本。

2)QRDBText组件

QRDBText组件用于在带区内打印数据表中的字段。其主要属性有以下几种。

(1)DataField属性

DataField属性指定要打印的字段。

(2)DataSet属性

DataSet属性指定同要打印的数据表相链接的一个数据集。

(3)AutoStretch属性

AutoStretch属性决定QRDBText组件是否进行垂直扩展,以适应显示一个字段(如备注字段)的完整内容。该属性为布尔性属性,若其值为True,则显示一个字段的完整内容,需要时,可以打破页的限制;否则,字段将被裁成组件的大小。

3)QRSysData组件

QRSysData组件用于在带区内打印系统信息,如系统日期、系统时间、当前页号等。其主要属性有以下几种。

(1)Data属性

Data属性指定打印的系统信息的内容。该属性为枚举型属性,有7种取值,其取值及其含义如表12-10所示。

(2)Text属性

Text属性指定系统信息前打印的提示内容。例如,Data属性设置为qrsDate,Text属性可设置为“今天的日期是:”,则打印的结果为:“今天的日期是:2003-11-20”。

4.QRExpr组件

QRExpr组件用来在报表生成时计算并打印一个表达式的值。其主要属性有以下几种。

Expression属性指定一个需要计算的表达式。

在对象检查器中,单击该属性值栏右端的【…】按钮,打开【ExpressionWizard】对话框,编辑需要的表达式。

12.5.2报表的制作

Delphi提供了两种制作报表的方法,用户可以使用报表向导或报表模板制作报表,也可以自己手工制作报表。这里以制作图书管理系统中读者查询结果报表为例,介绍较灵活的手工制作报表的方法。

1.创建报表窗体

在图书管理系统项目Project1中,新建一个窗体,窗体上放置一个Table组件、一个DataSource组件和一个QuickRep组件。窗体和组件的属性设置如表12-11所示。

2.连接报表和数据库

设置组件DataSourcedzmc的DataSet属性为Tabledzmc,设置组件QuickRepdzmc的DataSet属性为Tabledzmc,将报表和数据库连接起来。

3.设置QuickRep组件的带区

根据报表要求,设置报表的带区。假设设置5个带区:标题区、表头区、表体区、摘要区和页脚区,将QuickRep组件的Bands属性的有关子属性设置为True。

完成了以上设置的报表窗体如图12-46所示。

4.放置可打印组件

根据报表格式要求,放置可打印组件。假设标题区放置一个QRLabel组件,表头区放置5个QRLabel组件,表体区放置5个QRDBText组件,摘要区和页脚区各放置一个QRSysData组件。它们的属性设置如表12-12所示。

5.添加程序代码

程序需要添加如下代码:

单元文件Unit3的implementation段中添加usesUnit9。

【读者信息查询】窗体中,添加一个【生成报表】按钮,并添加它的单击事件处理代码:

为在打印前预览报表,可在报表窗体中添加一个【预览报表】按钮,单击该按钮,可预览报表,其事件处理代码为:

设计完成后,保存文件,编译、运行程序,在【读者信息查询】窗口中,单击【生成报表】按钮,打开报表窗口,如图12-48所示。

单击【预览报表】按钮,可以预览报表,如图12-49所示。

要正式打印,只需添加适当的对象,编写对象的事件处理代码,调用QuickRep组件的Print方法即可实现,读者自己不难完成。

习题12

1.数据库应用程序在数据库系统中的地位是什么?

2.Delphi的数据库功能体现在哪几个方面?BDE起什么作用?如何配置BDE?

3.Delphi中最常用的数据库组件有哪两大类?各起什么作用?

4.Table组件和Query组件在使用中有什么区别?

5.常用的SQL语句有哪些?在对象检查器中和程序代码中如何设置Query组件的SQL属性?

6.常用的数据控制组件有哪些?各有什么用途?

7.Delphi的数据库实用工具有哪些?DatabaseDesktop有什么用途?如何使用?

8.Delphi数据库应用程序的设计步骤有哪些?试用Paradox7数据库设计一个通讯录管理的小程序,对通讯录的条目具有查询、登记、修改、删除的功能。

9.生成报表要用哪些组件?各有什么用途?试设计生成通讯录报表的程序。

同类推荐
  • 互联网创业前奏曲(第二部)——网站运营之人性、策略与实战

    互联网创业前奏曲(第二部)——网站运营之人性、策略与实战

    本书是《互联网创业前奏曲》系列的第二本书,是作者多年互联网实践经验和业界观察的总结,是国内罕有的关于互联网网站运营和用户心理结合的书籍,用通俗的语言阐述互联网运营背后的人性驱动。你想互联网创业吗?你是否在为找不到好的互联网运营策略和方法而发愁?你非常想了解互联网行业?你是否在为自己不了解互联网运营而苦恼?本书针对这些问题列举了很多互联网运营的案例,帮你制定运营策略,更好的修炼和提升运营功力。
  • 计算机与人工智能(科学新知丛书)

    计算机与人工智能(科学新知丛书)

    本书是专门为中小学生编写的科普读物。全书共分八个部分,分别就计算机诞生的历程,计算机的种类、构造、作用及其发展趋势等方面进行了详尽的论述,全书论述深入浅出,行文活泼流畅。为本书的主要读者——广大的中小学生朋友认识计算机、了解计算机和掌握计算机提供了一把钥匙,是新时期中小学生开展素质教育不可多得的科普读物,中小学生家长及教师阅读此书也能从中获得有益的启示和感悟。
  • 中文版AutoCAD2005建筑绘图精讲精学

    中文版AutoCAD2005建筑绘图精讲精学

    本书从中文版AutoCAD2005建筑绘图的基础进行介绍,讲解了建筑绘图的环境设置、二维建筑图形的绘制、二维建筑及装饰图形的编辑、建筑绘图中的文字标注和图形查询、建筑装潢平面图中的尺寸标注、建筑绘图中图块的应用、建筑平面图的绘制、建筑立面图的绘制、建筑剖面图的绘制、建筑绘图中的三维造型、三维建筑模型绘制及建筑图纸的布局与打印输出等内容。
  • 图说电子计算机

    图说电子计算机

    今天人们谈到计算机常常会把它和网络联系起来。20世纪90年代兴起的因特网其影响之广、普及之快也是大家始料未及的,也从没有一种技术能像网络一样日新月异,并迅速地改变着我们的学习和生活方式。因特网大大缩小了时空界限,为我们提供了快捷方便的交流途径。在未来10年内,计算机又将会有怎样飞速的发展呢?在互联网上进行医疗诊断、远程教学、电子商务、视频会议等活动已经实现,未来的互联网的传输速率将会提高100倍,大家可以随时随地连接到因特网上,更方便地进行交流、沟通和开展商务活动。
  • 玩转手机

    玩转手机

    本书主要包括:手机的发展历史、手机知识、手机的选购与巧用、手机与网络、手机短信等内容。
热门推荐
  • 再不突破我就无敌了

    再不突破我就无敌了

    众所周知,筑基十转后可迈入先天。当然,天赋绝佳者能够做到筑基二十转,三十转,甚至最高者能够达到百转的程度。这等雄厚的筑基一旦突破,来自冥冥天地间的洗礼也就越大。可直到陈启筑基超过百转,达到了千转,却仍然没迎来自身的突破后,他不由得迷茫了。但他没有放弃,依然努力修行争取突破境界。谁曾想从此在筑基的道路上一去不返。三千转,六千转,一万转……直到若干年后,陈启已经站在这个世界的巅峰,茫然四顾,身边已是再无敌手,只见他脸庞上布满深深的迷茫,喃喃自语道:“不对啊,我已无敌,可我为什么还没有突破筑基……”本书又名《无敌的我怎么还没有突破》,《筑基到底有多深》,《论筑基的绝望性》
  • 重生寒武纪的鱼

    重生寒武纪的鱼

    请选择你的初始物种,完成进化成人类的主线任务。
  • 王源奇遇爱情

    王源奇遇爱情

    他遇见了她,于是他就爱上了她,他们的生活会发生什么样的精彩事件呢?!敬请期待
  • 向前风云

    向前风云

    这个大陆是个弱肉强食的大陆,只有强者才能生存弱者只有被欺负的份,这个大陆正被两大物种瓜分——一个是人类,一个是魔种。
  • 鹿晗:嗯哼,喜欢你有错吗

    鹿晗:嗯哼,喜欢你有错吗

    “鹿晗啊,请你不要打扰我的工作好吗?!”“哦?没有我,你怎么工作?”
  • 文茵传奇

    文茵传奇

    安史之乱让沈文茵痛失至亲,悲痛欲绝之时又遭丈夫遗弃。无奈之下,幽居山谷。偶遇杜甫,一番交谈,《佳人》传世。张泽铭偶读《佳人》,幽谷寻人,与沈文茵相遇。两人惺惺相惜,在动乱年代里相互扶持,成就了彼此的梦想。
  • 盘神帝尊

    盘神帝尊

    天门魔人突现,征伐天下!身为一州霸主岳家也惨遭毒手,家主身死,家族败亡!大少爷岳云天身陷贼手,没想到被丘山妖修所救。为报父仇,拜在玄龟玄青圣尊门下,修炼五行诀、天地人三书,阵法炼丹炼器无所不能。本以为大仇可报,谁知道天门展现的实力只是冰山一角而已……
  • 战略辑佚

    战略辑佚

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 眸光深处全是你

    眸光深处全是你

    婚前顾六少傲娇对着发小们说:“爷才不喜欢林夏那个蠢女人,那是我家老爷子让我娶她的。”婚后林夏:“你干嘛?”顾六少:“自个儿媳妇,抱一下不行吗?”正看着电视剧,顾六少凑过来强吻了媳妇儿。林夏推开他:“你干嘛?”顾六少气定神闲:“自个儿媳妇,亲一下不行吗?”夜里,顾六少抱着媳妇儿蹭了两下,什么正人君子,什么等她心甘情愿,通通见鬼去吧,现在他只想拆吃入腹。林夏:“你想干嘛?”顾六少泪汪汪:“想,很想。”顾六少对于媳妇儿的迟钝很无奈,想深情一把:“这世界上没有无缘无故的欺负,如果有那么那个人……”林夏翻白眼很不解风情,没等他说完:“如果有,那个人就是有病。”顾六少简直忍无可忍,“你蠢死算了。”林夏立马跑回房,拿了离婚协议书,顾六少满头大汗,最后只能自个儿气的踹桌子。(这是顾六少拐老婆、宠老婆、逗老婆玩的日常)
  • 樱花恋曲:一场梦终究会醒

    樱花恋曲:一场梦终究会醒

    她是美若天仙的小女孩,也是黑道上令人闻风丧胆的门主,长大后,因特殊原因被迫回国在,与他相知,相认,,,中途的种种困难使他俩无法相聚,在樱花树下,她的梦,终究醒了........