数据报表的设计课件

PPT
  • 阅读 87 次
  • 下载 0 次
  • 页数 79 页
  • 大小 971.500 KB
  • 2022-11-13 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
数据报表的设计课件
可在后台配置第一页与第二页中间广告代码
数据报表的设计课件
可在后台配置第二页与第三页中间广告代码
数据报表的设计课件
可在后台配置第三页与第四页中间广告代码
数据报表的设计课件
数据报表的设计课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 79
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】数据报表的设计课件.ppt,共(79)页,971.500 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-6082.html

以下为本文档部分文字说明:

1第10章数据报表的设计210.1数据环境设计器数据库的数据管理及维护、数据的查询等工作,都会形成各种数据报表,并希望以打印预览的形式显示,或形成打印文档,可直接打印出来。所以数据报表是数据库应用程序中非常重要的部分。数据报表设计器(DataReportDesigner

)是VB6.0新增的功能,和数据环境设计器(DataEnvironmentDesigner)配套使用,能完成多种类型报表的设计,是高效的报表设计工具。数据环境设计器(DataEnvironmentDesign

er)是一个可视化的编程环境,可以在设计时创建数据环境及ADO对象。可以设置连接对象和命令对象的属性值、编程响应ADO事件,也可以将数据环境设计器中的对象拖动到数据报表中来创建数据绑定控件。310.1.1数据环境设计器的创建在使用数据环境设计器时,必须在工程中添加并引用DataEnviron

ment对象。创建DataEnvironment对象有以下方法:⚫采用新建数据工程的方法⚫在已有工程中添加DataEnvironment对象的方法。1.新建数据工程利用新建数据工程的方法,VB可以在工程中自动添加DataEnvironment对象和数据报表设计器(

DataReport)对象。4新建数据工程的操作过程如下:启动VB6.0,新建一个工程,或在VB6.0环境中执行菜单:[文件]\[新建工程],打开[新建工程]对话框如图10-1,选择[数据工程]项,单击[确定]按

钮,即可创建数据工程。图10-1在新建工程对话框中选择[数据工程]项图10-2数据工程的[工程资源管理器]窗口5此时观察[工程资源管理器]窗口,可见工程中除了含有⚫一个窗体(默认名称:frmDataEnv)⚫一个数据环境设计器(默认名称:DataEnvironment1)⚫一个数据报表设计

器(默认名称:DataReport1)。VisualBasic6.0还在标准工具箱中自动添加了可以在数据工程中配合使用的ActiveX控件:ADODC、DataGrid、DataList、DataCombo等。62.在现有工程中添加数据环境设计器在现有的标准工程中,也可以利用菜单命令添

加数据环境设计器对象。操作方法如下:执行菜单:[工程]\[添加DataEnvironment]可以添加一个数据环境设计器(默认名称:DataEnvironment1)到本工程中。创建数据环境设计器后,可以用它来创建Connection对象以建立对

数据源的连接,创建Command对象以返回记录集;还可以拖动Command对象或Command对象的Field对象来创建报表。710.1.2连接对象(Connection)数据环境通过连接(Connection)对象与数据库

发生联系,从而访问该数据库,因此利用数据环境建立到数据库的访问,首先要创建Connection对象。在一个数据环境设计器中允许创建一个或多个Connection对象,每个Connection对象代表一个与数据库的连接,可以连接到本地数据库或网络数据源。在图10-2

所示的[工程资源管理器]窗口中,双击数据环境设计器DataEnvironment1,可打开该设计器窗口,可见其中自动已有一个连接对象(默认名称:Connection1),可以将该连接对象连接到某个DSN数据源。图10-3数据环境窗口中添加连接对象81.添加连接对象添加Connectio

n对象的方法是:在图10-3所示的窗口中,鼠标右击数据环境设计器名称,在弹出的快捷菜单中,选择[添加连接]项,即可添加一个新的连接(默认名称Connection2)。也可以在数据环境设计器窗口中单击工具栏中的[添加连接](图10-3中所示工

具栏中的左边第一个)按钮,添加一个新的连接对象。92.设置连接对象到数据源的连接下面以连接到“成绩管理”数据库为例,介绍连接数据源的方法。例10-1将Connection对象连接到“成绩管理”数据库。设计过程如下:(1)建立ODBC数据源

前边已经对“成绩管理”数据库配置了ODBC数据源,系统DSN名为cjgl。(2)为Connection1重命名重命名是为了增强可读性,使人一看到该连接的名称就知道其所连接的是哪个数据库。操作方法是:在当前数据环境设计器窗口中,右击连接对象Connection1,在弹出的快捷

菜单中选择[重命名]命令,将连接的名称改为:ChengJiGL。10(3)连接数据源数据环境设计器窗口中,右击连接对象ChengJiGL,在弹出的快捷菜单中选择[属性]命令,打开数据连接属性对话框。在[连接]选项卡的[1.指定数据源]框中,选中[使用数据源名称]项,并在其下拉列表

中选择数据源cjgl。单击[测试连接]按钮,将显示“测试连接成功”提示信息框,然后单击[确定]按钮即可。图10-4连接数据源1110.1.3命令对象(Command)完成了Connection与数据源的连接后,要想操作数据源中的数据,还要创建命令对象(Command)。命令对象可以基于数据

库对象(如表、视图、存储过程)或者SQL查询,返回Recordset对象中的记录,也可以进行数据操作或处理数据结构。在一个Connection对象中,可以建立多个Command对象,每个Command对象都要和Connection对象相联系,它具体定义了如何从

Connection对象所连接的数据源中返回数据。12若一个Command对象返回数据,则称之为“记录集返回”,意为该命令从数据源中返回数据,可以通过DataEnvironment的Recordset对象访问这些数据。若Command对象不返回数据,则称之为“非记

录集返回”,表示该命令是一个存储过程或执行诸如InsertInto、Update、Delete等动作查询的SQL语句,不立即返回记录集数据。可以创建子命令对象,通过父命令和子命令对象之间的关系,来以层次结构的形式获取一组相关的数据。131.添加Command对象添加Command对象的方法是:

在数据环境设计窗口中,鼠标右击Connection对象名称,在弹出的快捷菜单中,选择[添加命令]项,即可添加一个新的命令对象(默认名称Command1)。2.为Command1重命名右击Command1命令对象,在弹出的快捷菜单中选择[重命名]命令,将命令对象的默认名称Co

mmand1改为所需的名称也可以在弹出的快捷菜单中选择[属性]命令,打开属性对话框,在该对话框中更改命令的名称。3.设置Command对象的数据源建立了命令对象后,要设置其数据源属性,使其返回不同的记录集或进行不同的操作。14例10-2建立命令对象,返回课程信息表中的满

足条件“学时>=50”的所有记录。建立另一个命令,返回学生信息表的所有记录。设计过程如下:(1)在例10-1的工程中,打开数据环境设计窗口,右击连接对象GhengJiGL,在快捷菜单中,选择[添加命令],即可见该窗口中多了一个Command1对象。(2)设置命令对象

的属性:⚫右击Command1对象,在快捷菜单中,选择[属性]命令,即可打开属性对话框如图10-5。图10-5命令对象的属性对话框15⚫在[通用]选项卡中,将命令名称Command1改为kecheng;⚫在[连接]下拉列表框中选择连接对象名ChengJiGL;⚫选择数据源时,可以选择

数据库对象,也可以选择SQL语句作为命令对象的数据源。⚫根据本题意,要求返回课程信息表中的满足条件“学时>=50”的所有记录,应选择[SQL语句]选项,并在下边的文本框中输入SQL查询语句:“Select*From课程信息表Where学时>=50”⚫最后单击[确定]按钮即可

。完成命令对象的连接后,在数据环境窗口中展开命令对象kecheng节点,可以显示出该命令对象所包含的Field(字段)对象(如图10-6所示)。图10-6建立的kecheng命令对象16建立另一个命令,返回学生信息表的所有记录。若想返回一个表

的所有记录,则可以在图10-5所示对话框中选中[数据库对象]选项,在其旁边的下拉列表中选择“表”,然后在下边的[对象名称]旁的下拉列表框中选择所要的表名称即可。例如:在本例中再添加一个命令对象,返回学生信息表中的所有记录。操作过程如下:⚫在图10-

6所示的数据环境窗口中右击连接对象GhengJiGL,在快捷菜单中,选择[添加命令],即添加一个Command1对象。17⚫右击Command1对象,在快捷菜单中,选择[属性]命令,打开属性对话框如图10-5。⚫在[通用]选项卡中,将命令名称Command1改为XueSheng;⚫确认[连接

]对象名为ChengJiGL;⚫选择数据源时,选择[数据库对象]选项,在其旁边的下拉列表中选择“表”,然后在下边的[对象名称]旁的下拉列表框中选择“学生信息表”。⚫最后单击[确定]按钮,关闭属性窗口。此时在数据环境窗口中,可以看到新建立的命令XueSheng。1810.1

.4数据环境设计器的简单应用用数据环境设计器可以创建数据窗体,数据报表、图表等,也可以对数据环境设计器所创建的ADO对象进行编程。1.从数据环境创建窗体当设置好数据环境中连接对象及命令对象的数据源后,可以象其它数据控件一样,将数据绑定控件与其绑定,显示数据源的数据。使用数

据绑定控件创建数据窗体有两种方法:⚫通过设置绑定控件的属性与数据源绑定;⚫也可以从数据环境设计器中直接拖动命令对象或字段对象到窗体上,快速地创建数据窗体。19例10-3利用数据绑定控件创建课程信息显示窗体。在例10-2的数据工程中的窗体上,添加5个标签控件,分别设置其C

aption属性为课程信息表的各个字段的名:课程编号、课程名称、学时、学分、教师编号。再添加5个文本框,分别用来显示各字段的数据,将其绑定到数据源的方法是:⚫设置DataSource属性为:DataEnvironment1⚫设置D

ataMember属性为:kecheng(即:命令对象的名称)⚫设置DataField属性为:所要显示字段的名称。将该窗体设为启动窗体,运行程序,结果如图10-7所示。20例10-4用拖动对象方法创建数据窗体。在上例工程中,添加一个新窗体,名为For

m1,Caption属性设为:课程信息。打开数据环境设计器窗口,用鼠标选中命令对象kecheng,并按住鼠标左键,将命令对象kecheng拖动到窗体上。可以看到VB将自动在窗体上创建数据绑定控件,并自

动设置DataSource属性、DataMember属性和DataField属性,结果如图10-8所示。适当调整控件的大小,字体的属性等即可。将该窗体设为启动窗体,运行程序,可见文本框控件中显示课程信息表的一条记录信息。2110.2DataReport设计器概述

数据报表设计器(DataReportDesigner)是一种简单实用、功能较为齐全、高效的报表设计工具。它和数据环境设计器(DataEnvironment)配套使用,不但可以形成一般形式的报表,而且还可以设计分组报表及多种复杂格式的报表。报表设计主要包括

数据源连接和报表的布局两项工作。报表的数据源可以通过数据环境设计器进行连接,而报表的布局可以通过在数据报表设计器中,用鼠标拖动的方法进行设计。2210.2.1DataReport设计器介绍1.创建数据工程在“新建工程”对话框中,

选择[数据工程],可在[工程资源管理器]窗口中看到:一个DataEnvironment1、一个DataReport1和一个窗体名为frmDataEnv也可以在现有的工程中添加DataEnvironment和DataReport,操作如下:⚫执行菜单[工程]\[添加Dat

aEnvironment]⚫执行菜单[工程]\[添加DataReport]在[工程资源管理器]窗口中,双击DataReport1,打开报表设计器,如图10-13所示。图10-13DataReport的基本分区232DataReport的各分区的功能(

1)报表的基本分区DataReport1基本分区有:一个页标头区、一个细节区、一个页注脚区(见图10-13)。页标头/页注脚区:⚫页标头和页注脚出现在每页的顶部和尾部。相当于页眉和页脚。⚫页标头:可用来显示报

表的名称、当前页的内容,及“续表”等。⚫页注脚:可显示当前页码和总页数等。细节区:⚫是报表的数据区,显示记录的数据的详细信息。⚫细节区紧接着分组标头或页标头,区域长度可伸缩,有多少记录就显示多少行。24(2)Dat

aReport的更多的分区为显示DataReport的所有区域,可操作如下:1)在DataReport窗口上右击鼠标,在快捷菜单上选择[显示报表标头/注脚]命令,打开报表标头/注脚区。2)在DataReport窗口上右击鼠标,在快捷菜单上选择[插入分组标头/注

脚]命令,打开分组标头/注脚区。结果显示报表的更多分区如图10-14所示。图10-14DataReport的所有分区25报表标头/报表注脚区:⚫报表标头:出现在一组报表的第一页的开始处。用来显示对整组报表进行说明的文字。⚫报表注脚:

出现在一组报表的的最后。一般放总结性文字,如对该组报表的数据统计和分析等内容。26分组标头/分组注脚:⚫在分组报表中,所有内容都按照某一字段分成若干组显示。例如学生成绩,可按学生的专业进行分组显示,以清楚地看出每个专业的学生的学习

情况。⚫分组标头:出现在每一组数据的开始,常用来显示分组字段的内容,或说明文字。⚫分组注脚:出现在每组数据的结尾处,用来显示对该组数据的统计和汇总。也可显示说明性文字。2710.2.2用DataReport设计器创建报表1.创建报表的方法创建打印报表的一

般步骤如下:(1)在DataEnvironment1中建立数据源连接,并创建命令对象。(2)为DataReport1设置属性,使之与命令对象绑定,即设置DataReport1的以下两个属性:⚫DataSource:指定数据环境设计器的名称。⚫DataMembe

r:指定数据环境设计器中的某命令对象名,即绑定到该命令对象。(3)设置报表的结构,将命令对象拖放到DataReport1的对应区域中,调整报表的布局。(4)预览和打印报表。282创建报表举例例10-

6创建学生信息表中所有记录的打印报表。(1)建立数据源连接,并创建命令对象打开例10-5工程,若工程中没有数据环境设计器和数据报表设计器,需要自己进行添加。将连接对象ChengJiGL连接到数据库cjgl,创建命令对象:XueSheng,返回所有学生信息。由于例10-5工程,

已经连接好数据源,并已经创建好了XueSheng命令,所以不必重新连接。29(2)创建报表,并绑定到XueSheng命令上,用于显示XueSheng命令对象返回的记录:双击DataReport1,打开该报表设计器;在DataReport1的属性

窗口中,绑定数据源,即设置其属性如下:⚫DataSource:DataEnvironment1⚫DataMember:XueSheng(在数据环境中建立的命令对象)30(3)设置报表的结构,调整报表的布局在Data

Report1报表设计器窗口中右击鼠标,在显示的快捷菜单中选择[检索结构],自动检索其所连接的XueSheng命令对象的结构;用鼠标左键将命令对象XueSheng拖放到DataReport1报表设计器的“细节”区中这时在报表细节区可以看到XueSheng命令返

回的记录集的各个字段名的标签控件和用于显示记录值的文本框控件;31将每个字段名的标签拖放到[页标头]区中适当的位置,调整细节区中各文本框控件到适当位置在页标头区中,添加一个标签控件,用于显示标题文字“学生信

息表”(4)显示报表的打印预览执行菜单命令[工程]\[DataProject属性],将DataReport1设为启动对象;运行程序,显示报表的打印预览效果如图10-16。或执行:DataReport1.Show图10-16运行显示报表的预览效果32例10-7显示学生的姓名、课名

、成绩的打印报表。(1)在例10-7工程中,双击DataEnvironment1打开数据环境窗口,添加命令对象ChengJi,操作如下:右击连接对象ChengJiGL,在显示的快捷菜单中选择[添加命令],设计器窗口中将出现Command1命

令对象;右击Command1命令对象,选择[属性]命令,打开该命令的属性页;在[通用]选项卡中,将命令名称改为“ChengJi”单击[SQL描述]单选钮,键入SQL语句:⚫Select姓名,课程名称,成绩⚫From学生信息表,课程信息表,成绩表⚫Where学生信息表.学号=成

绩表.学号And课程信息表.课程编号=成绩表.课程编号;33(2)创建成绩报表在本工程中,添加一个报表控件DataReport2:执行菜单命令:[工程]\[添加DataReport]将DataReport2绑定到命令对象ChengJi上:双击DataReport2,打开该报表设计器;在Dat

aReport2的属性窗口中,设置属性:⚫DataSource:DataEnviornment1⚫DataMember:ChengJi34(3)设计报表的结构、布局:右击DataReport2报表设计器,选择[检索结构],自动检索命令对象ChengJi的结构;将命令对象C

hengJi拖放到DataReport2报表设计器的“细节”区中;将每个字段的标签拖放到“页标头”区中适当的位置,调整细节区中各文本框控件到适当位置。在页标头区中添加一个标签控件,显示报表的标题,将Caption设为“学生成绩单”,字号:二号。35(4)用窗体

上的按钮,显示报表的打印预览:在窗体上添加一按钮Command2,标题设为:成绩报表编写按钮的单击事件:PrivateSubCommand2_Click()DataReport2.ShowEndSub将窗体设为启动对象运行程序,单击该按钮,将显示报表的打印预览效果,如图10

-17所示。图10-17学生成绩报表3610.2.3根据输入的参数创建报表可以将一个变量的内容或将文本框中输入的内容作为参数传递给数据环境设计器中的查询。下面将举例说明怎样向一个用于报表生成的查询中传递参数

。【例10.8】打印报表中显示指定姓名的学生记录。要求:在文本框中输入姓名,单击[打印预览]按钮,将显示报表,其中显示所输入姓名的学生记录。37设计过程如下:(1)启动VB,新建一个数据工程。此工程中将自动包含一个窗体,一个Data

Environment1和一个DataReport1。(2)建立数据源连接:打开DataEnvironment1窗口,将Connection1改名为:ChengJi;鼠标右击该连接对象,在弹出的快捷菜单中选择[属性]命令,打开属性窗口;选择[连接]选项卡,选择

数据源名称为前边所配置好的ODBC数据源:cjgl。单击[测试连接]按钮,提示“连接成功”信息即可。38(3)添加命令对象:鼠标右击连接对象ChengJi,在弹出的快捷菜单中选择[添加命令]命令对象Command1,改名为:XueSheng;右击该命令对象XueSheng,

在弹出的菜单中选择[属性],打开属性窗口选择[SQL语句]单选钮,输入下面的SQL语句:Select学号,姓名,性别,生日From学生信息表Where姓名=?图10.18命令对象属性SQL语句39(4)在属性窗口中单击[参数]选项卡,设置有关

参数如图10.19。图10.19命令对象的参数设置40(5)打开DataReport1设计窗口,设置属性如下:⚫DataSource:DataEnvironment1⚫DataMember:XueSheng右击DataReport1

设计窗口中[细节区],在弹出的菜单中选择[检索结构]命令,然后将图10.20中的命令对象XueSheng拖放到细节区,调整好报表的布局41图10.22窗体的设计(6)设计窗体如图10.22。添加一个文本框Text1添加按钮,改名为CmdPrint,Capti

on属性为:打印预览。添加一个标签Label1,设置标题属性为:输入姓名。编写按钮的单击事件过程代码如下:PrivateSubCmdPrint_Click()DataEnvironment1.XueShengText1.TextDataReport1.ShowEndSub42

运行程序,在文本框中输入姓名,如图10.22,单击[打印预览]按钮,显示的打印报表如图10.23所示。图10.23打印报表运行结果43若想实现:输入某个姓(例如:王)则打印所有姓王的学生记录,要用模糊查

询功能。可对该例做如下改进:将图10.20中输入的SQL语句中的“=”号改为“Like”,即输入的SQL语句如下:Select学号,姓名,性别,生日From学生信息表Where姓名Like?编写[打印预览]按钮的单击事件过

程代码如下:PrivateSubCommand2_Click()DataEnvironment1.XueShengText1.Text&“%”DataReport1.ShowEndSub运行程序

,在文本框中输入:王,单击[打印预览]按钮,显示的打印报表如图10.24所示。图10.24打印报表运行结果4410.3创建分组报表在DataEnvironment中,可以用层次结构的命令对象建立分组报表,或用分组命令对象建立分组报表。10.3.1用关系层次结构的命

令对象建立分组报表如果将数据显示成如图10.25所示,即按课程名称分组显示,则可以使数据关系层次清晰。这就需要建立关系层次结构的命令对象,它适合于多表查询的情况。图10.25分组显示成绩报表45【例10.9】建立按课程名称分组的成绩报表。(1)建立命令对象,取名为“成绩分组

区”该部分返回的记录字段应该是用于分组的字段。操作步骤如下。①打开上例工程,在“DataEnvironment1”中的连接对象ChengJiGL中,添加新命令,然后右击该命令,选择“属性”菜单,打开“属性”对话框(如图10.26);②在通用选项卡中,将命令名称设为“成绩分组区”,其数据源设为

SQL语句:⚫SELECT课程编号,课程名称FROM课程信息表③“成绩分组区”命令对象的属性设置结果如图10.26所示,单击[确定]按钮,关闭属性对话框。图10.26“分组成绩表”命令对象的属性设置46

(2)在“成绩分组区”下建立子命令,取名为“成绩细节区”操作步骤如下。在DataEnvironment1中右击“成绩分组区”命令对象,在弹出的快捷菜单中选择[添加子命令],此时可见在“成绩分组区”命令对象下出现子命

令对象,默认名为Command1。、用鼠标右击该子命令对象,在弹出的快捷菜单中选择[属性]命令,打开属性对话框,在[通用]选项卡中,将命令名称改为“成绩细节区”;在[数据源]选择区域中,选择[SQL语句]单选按钮,单击[SQL生成器]按钮,将打开[数据视图]对话框,如图10.27

所示,并打开SQL生成器窗口,如图10.28所示。47用鼠标左键将[数据视图]对话框中的“学生信息表”和“成绩表”分别拖到SQL生成器上部的[输入源窗格]中,并在该窗格中选择“学生信息表”中的“学号”、“姓名”字段和“成

绩”表中的“课程编号”、“成绩”字段作为数据源,SQL生成器会自动根据你的选择生成SQL语句如下:SELECT学生信息表.学号,学生信息表.姓名,成绩表.成绩,成绩表.课程编号FROM学生信息表INNER

JOIN成绩表ON学生信息表.学号=成绩表.学号关闭SQL生成器,将弹出提示保存查询的信息框,单击[是]按钮,保存生成的SQL语句。48(3)使父命令和子命令相关联在“成绩细节区”子命令的属性对话框中,选择[关联]选项卡(如图10.29),确认父命令是“成绩分组

区”;在关联定义框中,选择[父字段]和[子字段]都为“课程编号”,表示父、子命令通过“课程编号”字段相关联,然后单击[添加]按钮,将[父字段]和[子字段]的选择添加到下边的列表框中。单击[确定]按钮,关闭[属性]

对话框,成绩单的命令层次关系就定义完了。结果在图10.30所示的数据环境窗口中,显示出定义好的每门课程的学生成绩的命令。49(4)用MSHFlexGrid控件显示命令层次结构MSHFlexGrid控件属于ActiveX控件。如果是

直接新建的数据工程,则VB会自动将MSHFlexGrid控件添加到标准工具箱中;若没有,则需要另外在[工程]\[部件]里,选择“MicrosoftHierarchicalFlexGridControl6

.0”,将该控件添加到工具箱中。在窗体上添加一个MSHFlexGrid控件,使用默认名称为MSHFlexGrid1,并调整到合适大小;设置该控件的属性如下,以绑定数据源:⚫DataSource:DataEnvironment1⚫DataMem

ber:成绩分组区(即:父命令的名称)50(5)用DataReport显示层次命令结构的打印报表在工程资源管理器窗口中,双击DataReport1,打开报表设计器窗口,在窗口中右击鼠标,在显示的快捷菜单中选

择[插入分组标头/注脚],使DataReport1窗口中显示分组区。在属性窗口中设置DataReport1的属性,绑定数据源:DataSource:DataEnvironment1DataMember:成绩分组区(即:父命令的名称)51在Data

Report1窗口的任意位置单击鼠标右键,在快捷菜单中选择[检索结构]。打开DataEnvironment1窗口,将父命令“成绩分组区”中的“课程名称”字段拖放到DataReport1的分组标头区域中(因为按“课程名称”分组显示)。将子命令对象“成绩细节区”整

个拖放到DataReport1的细节区域内,删除“课程编号”字段,将其余字段的标签放到分组标头区中,将各字段的文本框控件保留在细节区中,调整布局如图10.32。图10.32报表布局设计5210.3.2用分组层次结构的命令对象建立分组报表分组层次结构命令适合于单表查询的情况。例如按“专

业”字段,分组显示学生记录,可以使查找学生信息更为清晰。【例10.10】建立按“专业”字段分组显示的学生记录的数据报表。(1)建立分组命令对象,操作如下:打开上例工程,在“DataEnvironment1”的连接对象ChengJiGL中,添加新命令,右击该命令,选择“属性”菜单,打开“属性

”对话框;在通用选项卡中,将命令名称设为“学生信息”,其数据源设为SQL语句如下:⚫select*from学生信息表53单击[分组]选项卡(如图10.33所示),选中[分组命令对象]复选框,分组命

令名称自动生成为:“学生信息_分组”,也可以修改该名称。在[命令中的字段]列表中,选择用来分组的字段:“专业”,并单击[>]按钮,“专业”字段移到[用于分组的字段]列表框中。然后单击[确定]按钮,关闭属性对话框。这时在数据环境设计器窗口中创建了一个名为“学生信息_分组”的

命令对象,并使其成为原命令“学生信息”的父命令。该分组命令的层次结构如图10.34所示。图10.33设置用于分组的字段54(2)用MSHFlexGrid控件显示分组命令层次结构添加一个窗体Form1,标题属性Caption设为:学生信息;在窗体上添加控件MSHFle

xGrid1,调整到合适大小;设置该控件的属性如下,以绑定数据源:DataSource:DataEnvironment1DataMember:学生信息_分组55(3)用DataReport显示分组命令结构打

印报表在属性窗口中设置DataReport2的属性,绑定数据源:DataSource:DataEnvironment1DataMember:学生信息_分组在DataReport2窗口的任意位置单击鼠标右键,在快捷菜单中选择[检索结构]。打开DataEnv

ironment1窗口,将“摘要字段在学生信息_分组”中的“专业”字段拖放到DataReport1的分组标头区域中。将“细节字段在学生信息”整个拖放到DataReport2的细节区域内,并删除细节区域内的“专业”字段,将其余字段的标签放到

分组标头区中,将各字段的文本框控件保留在细节区中,调整布局。5610.4报表控件及其应用在VB的工具箱的“数据报表”选项卡中,为DataReport提供了6种专用控件:⚫RptLabel:标签控件,在报表中显示静态文本⚫

RptLine:画线控件,显示直线⚫RptTextBox:文本框,显示字段的数据。⚫RptImage:显示图片。⚫RptShape:显示矩形、圆形等图形⚫RptFunction:显示计算字段。5710.4.1在报表中加入网格线在[数据报表]工具

箱中,单击RptLine后,可在细节区用鼠标手工画线条;或单击RptShape,在细节区画矩形框,即可显示网格。在细节区中每显示一条记录,则文本框周围的线条将被显示一次。可以在属性窗口中,设置RptShape和RptLine控件的属性,如:

线条的样式、颜色等。例如在例10-8的DataReport2中,用RptShape控件画矩形,将页标头区中各字段的标签控件框起来;在细节区中的各文本框控件的下边用RptLine控件画一条横线,且在两端各画一条竖线(见图10-31)。图10-32为加表格线报表的运行结

果58图10-32加表格线报表的运行结果图10-31在报表中画线和矩形5910.4.2显示文本和图片用RptLabel控件可在报表中添加标题,页眉/注脚等文本例:在工具箱中单击标签控件RptLabel,在报表

标头区添加如标签控件,在Caption属性中输入报表的标题文字。用图像控件RptImage,可以在报表中显示图片。例如对于一个单位或一个公司而言,考虑到公司的形象,往往在报表的头部显示公司的徽标等图形。只要在报表中添加RptImage控件,设置其Picture属性为所需图

片文件即可。6010.4.3统计与计算1.用RptFunction控件实现统计与计算在实际工作中,常常在分组报表中,对该组数据进行汇总、统计,并以一定的格式显示出来。在数据报表中用RptFunction控件,调用一些内置函数,可以实现对某字段数据进行求和、求平均值、求最大值、求

最小值等计算。RptFunction控件的FunctionType属性:用于指定进行何种计算,其取值含义如表10-1所示。注意:RptFunction控件只能放在DataReport的分组注脚和报表注脚区域中。61表10-1FunctionType属性取值含义取值含义

0-rptFuncSum对一个字段求和1-rptFuncAvg对一个字段求平均值2-rptFuncMin对一个字段求最小值3-rptFuncMax对一个字段求最大值4-rptFuncRcnt求记录的行数5-rptFuncVcnt求记录不为N

ULL的行数62例10-12在学生成绩单报表中显示最高分。在例10-11的DataReport2的报表注脚区添加一个RptFunction控件,设置属性如下:⚫名称:Funtion1⚫DataMember:ChengJi⚫DataField:成绩⚫FunctionType:3-rptFun

cMax⚫Font:五号、粗体在RptFunction控件左边添加一个标签RptLabel控件,用来显示”最高分”.设置属性如下:⚫Caption:最高分⚫Font:五号、粗体DataReport2的设计结果如图10-33所示,运行结果如图10

-34所示。63图10-33数据报表的设计结果图10-34数据报表的运行结果64例10-13在学生成绩报表的分组注脚区中,显示该门课的成绩的平均分。设计过程如下:在上例10-10的DataReport1的分组注脚区添加RptFunction控件,

设置属性如下:名称:Funtion1DataMember:成绩细节区DataField:成绩FunctionType:1—rptFuncAveFont:五号、粗体65在分组注脚区添加RptLab

el控件,设置属性如下:Caption:平均分:Font:五号、粗体用rptLine控件,在分组区画两条横线,在细节区画一条横线。DataReport1的布局设计结果如图10-35所示,运行结果如图10-36所示。66图10-36数据报表的运行结果图10-35数据报表的布局设计671

0.4.4显示页码和日期使用RptLabel控件,若将Caption属性设为下表所示的值,则将显示所代表的内容。⚫%p当前页号⚫%P报表的总页数⚫%d当前日期(短日期格式)⚫%D当前日期(长日期格式)⚫%t当前时间(短时间格式)⚫%T当前时间(长时间格式)⚫%i报表标题

例:在页注脚区添加RptLabel控件,设Caption属性值:%p。则运行程序,将显示当前页码。68在报表设计器中,提供了快捷菜单,可向报表插入页码、日期、时间等内容。可在报表中的相应区,单击鼠标右键,选择[插入控件]命令,再在子菜单中选择要插入的内容。插入报表标题后,要设

置Caption属性,为要显示的标题字符串。69例10-15在页注脚区中,显示当前日期,当前页码。打开上例的中的DataReport2窗口;在页注脚区中,右击鼠标,在弹出的快捷菜单中选择[插入控件]\[当前页码],则添加

了一个Caption为%p的标签;在页注脚区中,再右击鼠标,在弹出的快捷菜单中选择[插入控件]\[当前日期(长格式)],则添加了一个Caption为%D的标签;在%p的左右分别添加标签,Caption分别为:“第”和“页”;调整合适布局,结果如图10-41所示。运

行DataReport2结果如图10-42所示。70图10-41在页注脚区添加页码和日期图10-42页码和日期的运行显示结果7110.4.5控制分页DataReport的每个分区都有两个属性,控制该区域的分页行为。⚫ForcePageBreak

属性、KeepTogether属性1.ForcePageBreak属性,取值意义如下:⚫0——rptPageBreakNone:不分页⚫1——rptPageBreakBefore:在当前区前边分页⚫2——rptPageBreakAfter:在当前

区后边分页⚫3——rptPageBreakBeforeAndAfter:•在当前区前、后边都分页72例如,对于例10.15,若希望每门课成绩显示完,就另起一页,则可以在分组区之前分页。设置方法是在DataReport1

窗口中,单击[分组标头]区的上边框,选中该区域,然后在属性窗口中将ForcePageBreak属性值设为1—rptPageBreakBefore。则运行该报表,可见一组成绩占一页。732.KeepTogether属性值为True时,DataReport尽量使整个

区域保持在一页中。例如报表中,细节区域的记录数是不确定的,随记录数而变化的。可能产生第一页的记录有几行,显示到下一页的头几行,不太美观,所以可设细节区的KeepTogether=True则尽量显示在一页中。7410.5输出数据报表1

0.5.1报表的预览和打印1.预览报表预览报表的方法有两种:⚫一种是将DataReport设为启动对象,但这只适合于调试阶段。⚫另一种方法是调用DataReport的Show方法。一般是在菜单或按钮的单击事件中调用该方法。例如在窗体中,

添加按钮Command1,用于预览报表:编写代码:PrivateSubCommand1_Click()DataReport1.ShowEndSub752.打印报表(1)在预览时打印在预览报表时,位于报表窗口左上角的工具栏中有一个[打印]按钮,可

以单击该按钮,将显示打印对话框,在其中设置好各参数,单击[打印]按钮,即可在打印机上打印报表。(2)调用DataReport的PrintReport方法用PrintReport方法,可以在运行程序时,通过程序代码控制报表的打印。例:⚫PrivateSubComman

d3_Click()⚫DataReport1.PrintReportTrue⚫EndSub76PrintReport方法的完整语法格式如下:PrintReportShowDialog,Range,PageFrom,

PageTo参数说明:ShowDialog:该参数用于指定是否显示打印对话框,默认值为True,表示显示打印对话框。Range:该参数用于指定是打印所有页,还是打印指定范围的页。其取值有以下两种:⚫0(rptRangeAl

lPages):表示打印所有的页(默认值)⚫1(rptRangeFromTo):表示打印指定范围的页PageFrom:该参数用于指定打印范围的起始页。PageTo:该参数用于指定打印范围的最后页。77在实际应用中,进行打印操作时,一般都希望显

示打印对话框,供用户选择打印范围等参数。因此在调用PrintReport方法时,不指定各参数,则会显示打印对话框。例如在窗体中,添加一个按钮,用于打印报表,编写代码如下:PrivateSubCommand2_Cli

ck()DataReport1.PrintReportEndSub78本章小结数据环境设计器的创建,包括连接对象、命令对象的建立方法,数据环境设计器的简单应用;用DataReport设计器创建报表,报表控件及其应用,报表

的预览和打印方法。79第10章结束

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?