登陆注册
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.生成报表要用哪些组件?各有什么用途?试设计生成通讯录报表的程序。

同类推荐
  • 《Internet实用技术》作业集

    《Internet实用技术》作业集

    随着计算机应用的普及和社会信息化水平的提高,Internet已走进我们的生活。《Internet实用技术》这门课将带领我们走进网络的神秘殿堂,让我们认识网络,了解网络,进而学会使用网络,维护网络。其范围涵盖了在授课过程中所讲授的内容,题型多样,内容丰富,并附有两套模拟题,最后附有答案。学生可按照课程进度做习题来巩固和掌握知识。本作业集由李琳编写,由西北工业大学网络教育学院负责组稿和审定。因为时间仓促,水平有限,错误和不当之处在所难免,敬请读者批评指正。
  • 图说电子计算机

    图说电子计算机

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

    如何建设网站

    本书以问答的方式介绍了建设网站的基本知识,内容包括:网站设计的八个步骤、建设网站需要掌握的工具软件、网页中插入图像、在网页中隐藏内容等。
  • 三维动画审美谈

    三维动画审美谈

    数字时代,美的标准充满更多的不确定性。而三维动画以数字图像形式成为这个图时代的代表。三维动画及三维图像不仅仅是由于应用了仿真数字图像技术而带来的虚拟空间,还有更多的是由三维图像技术所引发或引导的被扩展的图像技术,这些技术无不应用在现代视觉设计领域的各个方面,并且,由此引起社会的追热,引起审美观念的改变。这些改变是在进行中的,变化中的,也是在发展中的。对于未知的美,我们做的只是追寻和记录,我们不知道以后的美将会是什么样,尽管我们苦苦追寻,孜孜探讨,同时也在默默审视。我们在追寻中享受美,在探讨中认知美,在审视中体验美……
  • 高校校园网管理与网上引导工作研究

    高校校园网管理与网上引导工作研究

    在当今的信息化潮流之下,我们不可否认互联网的出现,绝不仅仅是传送手段的变化,更重要的是它代表着一种新的社会形态——网络社会的来临。互联网已经以一种前所未有的方式渗透到现代社会的各个层面和领域,成为现代社会前进和发展的动力和工具,它推动了社会经济、文化政治实现所谓的“数字化转变”。
热门推荐
  • 空想图鉴

    空想图鉴

    心想事成?要求太高了吧~心想物成怎么样?想要金币有金币想要钻石有钻石,还要啥自行车啊。
  • 佛说太子刷护经

    佛说太子刷护经

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 邵氏闻见录

    邵氏闻见录

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 佳人将行

    佳人将行

    苏南笙,华胤集团的太子爷,看似优雅完美实则只想做一个无理想无抱负混吃等死逍遥快活的富二代,奈何父母对自己管教太严格导致这个愿望一直没有实现。自发小在演唱会现场被人谋杀至死以后,意外穿越回两年前自己接手烟华集团的那一天。为避免发小再次死亡,苏南笙决定在悲剧到来之前揪出真正的幕后黑手。
  • 凡人意识

    凡人意识

    什么是意识?是所有生物都拥有意识,还是人类独有?察觉杀气果断反杀,遭遇GANK提前离开,意识存在万物之间。在不断萎缩的世界反面,少年背负起旧神的灵龛,从灰暗的历史中走了出来,决定带给凡人们新生。
  • 沧浪画月图

    沧浪画月图

    '沧浪画月图'的灵感来源于梅花,所以才有了这么一个与梅有关的女主,关于梅的气节,梅的品格,梅的孤傲,梅的惊艳在女主的身上会得到淋漓尽致的体现。本剧的故事起源于一则陈年冤案,后人为其翻案由此牵连出一系列不为人知的背后阴谋,而一系列的尔虞我诈,皆起源于一幅三百年的图,围绕着这幅神秘的,不知其真容的图,江湖波云诡谲,风云再起。
  • 醉酒就变强

    醉酒就变强

    天赋不够,醉酒来凑。你强任你强,我自花间一壶酒。全新世界观,全新仙侠修炼系统。全新全异的修士界等你来发掘。
  • 妖女乱国

    妖女乱国

    在南北朝的乱世中,她从一个强大却有些狂妄的女孩渐渐成为真正的“无冕之王”。非传统爽文,不喜慎入。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 九州新纪元

    九州新纪元

    九州大地为异魔所侵,盟主携众避祸海外,不幸遭遇神秘灾变,亿万生灵葬身大海。剩余盟众寻得海外新陆建立新九州。