1、Visual Basic 程序设计 第二章第 5章 报表25.1 报表的基本概念创建报表5.2报表设计5.35.5 修饰报表5.4 报表的高级设计35.1.1报表的功能q报表是查阅和打印数据的方法,与其他的打印数据方法相比,报表具有可以执行简单数据浏览和打印的功能,还可以对大量原始数据进行比较、汇总和小计。报表还可以生成清单、订单及其他所需的输出内容,从而方便、有效地处理商务。q报表作为 Access 2003数据库的一个重要组成部分,不仅可用于数据分组,单独提供各项数据和执行计算,还提供了以下功能。1)可制成各种丰富的格式,使用户报表更易于阅读和理解。2)可以使用剪贴画、图片或者扫描图像来美
2、化报表。3)通过页眉和页脚,可在每页的顶部和底部打印标志信息。4)可利用图表和图形来帮助说明数据的含义。 5.1 报表的基本概念 45.1.2 报表的类型和视图 q建立报表前,首先必须确定报表类型。q报表可能是一个电话号码簿,也可能是发票之类的复杂清单;还可以建立特殊种类的报表(如标签)。q常见的报表类型有 4种:1、报表的类型 52、报表的视图qAccess2010提供的报表视图有 4种,分别是设计视图、布局视图、报表视图和打印预览。1)设计视图:用来创建和编辑报表的结构。2)布局视图:也称为设计网格或设计图面,使用布局视图可以排列报表中的报表项。3)报表视图:用于显示报表内容,可对报表内容
3、进行筛选、查找等。4)打印预览:用来查看报表的页面数据输出形态。q这 4个视图是可以相互转换的,单击 “ 开始 ” 选项卡中 “ 视图 ” 组里的 “ 视图 ” 命令按钮位置下的 4个选项:报表视图、打印预览、布局视图和设计视图即可对视图进行转换。65.1.3 报表的组成q在报表 “ 设计 ” 视图中,报表的结构一般由报表主体、报表页眉、报表页脚、页面页眉、页面页脚五个区段组成,这些区段称为 “ 节。q它位于报表的左上端,一般用来显示报表的标题、图形或说明性文字,每份报表只有一个报表页眉。1、报表页眉节 2、页面页眉节 q页面页眉中的文字或控件一般位于每页的顶端。通常,页面页眉用来显示报表中的
4、字段名称或记录的分组名称。73、主体节q 主体节用来定义报表中最主要的数据输出内容和格式,将针对每条记录进行处理,各字段数据均要通过文本框或其他控件(主要是复选框和绑定对象框)绑定显示,可以包含通过计算得到的字段数据。q 根据主体节内字段数据的显示位置,报表又分为 4种类型:( 1)纵栏式报表(也称窗体报表) 一般是在一页的主体节区内以垂直方式显示一条或多条记录。( 2)表格式报表 以整齐的行、列形式显示记录数据,通常一行显示一条记录,一页显示多行记录。( 3)图表报表 包含图表显示的报表类型。( 4)标签报表 一种特殊类型的报表。在实际应用中,经常会用到标签,如物品标签、客户标签等。q 根据
5、需要可以在报表页中显示页码、报表输出日期,甚至以直线或方框等来分隔数据,与窗体设计一样也可以设置颜色和阴影等外观属性。84、页面页脚节q页面页脚位于每页报表的底部,用来显示本页数据的汇总情况。一般包含页码或控制项的合计内容,数据显示安排在文本框等类型控件中。5、报表页脚节q报表页脚节区一般是在所有的主体和组页脚输出完成后才会出现在报表的最后面,用来显示整份报表的汇总说明。通过在报表页脚区域安排文本框等控件,可以输出整个报表的计算汇总或其他统计信息。q另外,根据报表设计需要还可以添加组页眉和组页脚。组页眉一般在组的明细部分的最前面,显示分组字段等分组信息;组页脚一般在组的明细部分的最后面,显示分
6、组统计数据等分组信息。95.2.1 自动创建报表 q “ 自动创建报表 ” 是使用向导创建报表的一种方法。使用 “自动创建报表 ” 方法可以选择表或查询作为报表的记录源,然后选择纵栏式或表格式类型来创建报表。5.2 创建报表 qAccess 2010提供了 5种创建报表的工具:报表、报表设计、空报表、报表向导和标签。创建报表的报表工具如图 5-1所示。报表的创建过程可归纳为以下 3种方法:一是使用自动报表创建基于单个表或查询的报表,二是使用向导创建基于一个或多个表或查询的报表,三是在设计视图中自行创建报表。101、使用 “ 报表工具 ” 创建报表2、使用 “ 自动创建报表:表格式 ” 创建报表
7、qP128 【 例 5-1】qP129 【 例 5-2】q使用 “ 报表 ” 按钮创建报表是一种创建报表的快速方法,其数据源是某个表或查询,所创建的报表是表格是报表。q创建空报表是可以在布局视图中打开一个空报表,并显示出字段列表任务窗格。将字段从字段列表拖到报表中时,Access 将创建一个嵌入式查询并将其存储在报表的记录源属性中。115.2.2 利用报表向导创建报表q使用向导创建报表比较简单,用户只要按照向导提示即可正确建立报表。在创建报表的过程中,如果对前面的设计不满意,可以返回上一步进行修改,直到满意为止。 1、使用报表向导创建报表qP130 【 例 5-3】q 注意:q 如果要在报表中
8、包含来自多个表或查询的字段(多个表之间必须已经建立 “ 关系 ” ),则在报表向导中选择第一个表或查询中的字段后,不要单击 “ 下一步 ” 按钮或 “ 完成 ” 按钮,而是重复执行选择表或查询的步骤,直至选完所有需要的字段。字段选择完毕后,按 “ 下一步 ” 按钮,弹出的对话框要求选择报表使用的布局,接着弹出的对话框则要求选择报表所用的样式,最后一个对话框则要求给出报表的标题(也是报表的名字),然后单击 “ 完成 ” 按钮即可生成报表。q 如果生成的报表不符合预期要求,可以在报表设计视图中进行修改。12q 为了使报表更形象,或为了特殊需要,可以使用标签向导来创建标签格式的报表。 P133 【
9、例 5-5】3、使用标签向导创建标签报表q 以上所创建的报表,大多以数据形式为主。如果需要更加直观地将数据以图表的形式表示,就可使用图表向导创建报表。图表向导功能强大,提供了几十种图表形式供用户选择。 P131 【 例 5-4】2、使用图表向导创建报表 说明q因为步骤 7)中选择的是 “ 修改标签设计 ” 单选按钮,所以单击 “ 完成 ” 按钮后,打开该标签的设计视图界面。在标签设计视图界面中,调整 3个字段标签和 3个字段文本框的位置和大小,在上方添加用于显示标题的标签,输入 “ 教师卡 ”,在其右侧添加一个图片,再在标签标题下方添加一个 “ 线段 ” 控件,然后在主体中添加一个 “ 矩形
10、” 控件,修改完后显示结果如图 5-22所 示。135.2.3 使用 ” 报表视图创建报表q在实际应用中,许多用户喜欢先使用向导创建报表,然后再在设计视图中修改报表的设计。可见 “ 设计视图 ” 可以让用户完全自主地来创建和修改报表。q在数据库窗口功能区 “ 创建 ” 选项卡的 “ 报表 ” 组中,单击“ 报表设计 ” 按钮,系统将弹出报表设计视图。qP134 【 例 5-6】145.3 报表设计5.3.1 报表设计视图q 在 Access中提供了报表视图,允许用户通过直观的操作来直接设计或修改报表。打开报表视图的方法如下。q 打开 Access 2010数据库,在 “ 导航窗格 ” 中选定
11、“ 表 ” 中作为报表数据源的数据表,在 “ 创建 ” 选项卡中选择 “ 报表 ” 组,单击“ 报表设计 ” 按钮,如图 5-26所示。系统将自动打会开 “ 报表设计 ” 视图对话框,这时屏幕会出现报表视图窗口。1、打开报表视图的方法q首次启动 “ 报表视图 ” 时,报表布局中默认有 3个节:页面页眉、主体和页面页脚,也可以根据需要添加报表页眉和报表页脚。2、报表视图的基本组成15说明:1)报表页眉:以字号大的文本将该份报表的标题放在报表顶端。只有报表的第 1页才出现报表页眉内容。报表页眉的作用是作封面或信封等。2)页面页眉:页面页眉中的文字或字段,通常会打印在每页的顶端。如果报表页眉和页面页
12、眉共同存在于第 1页,则页面页眉数据会打印在报表页眉的数据下面。3)主体:用于处理每一条记录,其中的每个值都要被打印。主体区段是报表内容的主体区域,通常含有计算字段。4)页面页脚:页面页脚通常包含页码或控件,其中的 “ =“第“&page& “页 “” 表达式用来打印页码。5)报表页脚:用于打印报表末端,通常使用它显示整个报表的计算汇总等 。16q除了以上通用区段外,在分组和排序时,有可能需要组页眉和组页脚区段。可选择 “ 视图 ”“ 排序与分组 ” 命令,弹出 “ 排序与分组 ” 对话框。选定分组字段后,对话框下端会出现 “ 组属性 ” 选项组,将 “ 组页眉 ” 和 “ 组页脚” 均设置改
13、为 “ 是 ” ,在工作区即可出现相应的组页眉和组页脚。q 每个节的大小是可以改变的,将鼠标指针指向节分隔条,此时鼠标指针变成垂直双箭头,拖动鼠标即可改变节的大小。改变大小后的节,反映在报表上,页面页眉区域、页面页脚区域和记录的行间距也随之发生改变。175.3.2 报表控件 q报表是由各种控件组成的。标题、图标、页面页眉、日期及时间等,都需要用添加控件的方法来实现。在 “ 创建 ” 选项卡中选择 “ 报表 ” 组,单击 “报表设计 ” 按钮,屏幕的“ 报表设计工具 ” 中的 “设计 ” 选项卡下就会显示报表控件工具栏。如图 5-27所 示。图 5-27 报表控件工具栏18q 用户可以在设计视图
14、中对控件进行如下操作:1)通过鼠标拖动可以创建新控件、移动控件。2)通过按 Delete键删除控件。3)激活控件对象,拖动控件的边界调整控件大小。4)通过格式化改变控件外观,可以运用边框、粗体等效果。5)对控件增加边框和阴影等效果。6)向报表中添加非绑定控件,可通过从工具栏中选择相应的控件,拖动到报表上即可。向报表中添加绑定控件是一项重要工作,这类控件主要是文本框,它与字段列表中的字段相结合来显示 数据 。1、控件的操作 19q 在报表中创建计算控件时,可使用以下两种方法:若控件是文本框,可以直接在控件中输入计算表达式;不管控件是不是文本框,都可以使用表达式生成器来创建。q 使用表达式生成器创
15、建计算控件的操作步骤如下:1)在设计视图中打开报表。2)创建或选定一个非绑定的文本框。3)单击报表设计工具栏中的 “ 属性 ” 按钮。4)打开属性对话框中的 “ 数据 ” 选项卡,并单击 “ 控件来源 ” 行。5)单击表达式生成器按钮,弹出 “ 表达式生成器 ” 对话框6)单击 “ =” 按钮,并单击相应的计算按钮。7)双击计算中使用的一个或多个字段。8)输入表达式中的其他数值,然后单击 “ 确定 ” 按钮。2、计算控件的操作 20q 在报表设计视图中,有一个属性对话框,用来显示选定对象的属性。报表由许多控件(又称对象)组成,这些控件彼此独立,每个对象都具有自己的属性,如颜色、尺寸大小、标题、
16、名字、在屏幕上的位置等都是它的属性,可以通过属性对话框来定义或修改对象的各种属性。q 打开属性对话框的方法是,选择 “ 视图 ” 下的“ 属性 ” 命令,或单击 “ 报表设计 ” 工具栏中的 “ 属性 ” 按钮 ,屏幕显示属性对话框,如图 5-29所示。报表中的每个控件都具有自己的属性。控件属性可分为以下 4类。1)格式:用来指定控件的外观。2)数据:用来指定控件如何使用数据。3)事件:允许为控件上所发生的事件指定命令。4)其他:任何不属于以上类别中的属性。5)全部:以上 4个控件属性中的所有内容。3、控件属性215.3.3 报表控件的使用 q下面介绍如何添加各种报表控件,添加报表控件的方法也
17、类似于添加窗体控件的方法。下面介绍几个主要控件。1、标签 q在报表中,标签控件是最常用的一种控件,它可以单独使用,也可以和其他控件结合使用。在报表视图窗口中,单击报表控件工具栏中的 “ 标签 ” 按钮,然后将鼠标指针指向报表页眉节并单击在光标处输入标签文本内容 “ 学生基本情况一览表 ” 。用同样的方法,在页面页眉节输入字段名,如输入 “ 学号 ” 、 “ 姓名 ” 、 “ 专业编号 ” 、 “ 出生日期 ” 、 “ 入学时间 ” 和 “ 入学成绩 ” 等。222、文本框控件 q报表设计中的文本框控件用于显示表字段、变量和表达式的内容。添加文本框控件有以下两种方法。( 1)从字段列表中添加q在
18、字段列表对话框中选择要添加到数据表中的字段,将该字段单击并拖到报表区域。本例中将数据环境学生表中的 “ 学号 ” 、 “ 姓名 ” 、 “ 专业编号 ” 、 “ 出生日期 ” 、 “ 入学时间 ” 和 “ 入学成绩 ” 字段分别拖到主体节中,并与页面页眉节内相应的标头对齐。结果如图 5-29所 示。( 2)从报表控件工具栏中添加q单击报表控件工具栏中的 “ 文本框控件 ” 按钮,将光标指向要放置文本框控件的位置并单击,可在指定区域添加一个未绑定文本框控件。在属性窗口的 “ 控件来源 ” 行中选择相应字段。或者单击 “ 控件来源 ” 行后面的浏览按钮 ,打开 “ 表达式生成器 ” 。233、图形
19、控件q在报表中添加线条和矩形框等控件可以使报表更为清晰、美观。例如,例题中我们在标题与页面页眉之间都用线条分隔开来。可以按照以下操作步骤完成。q单击报表控件工具栏中的 “ 直线 ” 按钮,分别将鼠标指针指向标题节和总结节,单击并拖动鼠标,一条直线就画出来了。q如果要修改线条的粗细或形状,可在属性对话框中的 “ 边框宽度 ” 下拉列表框中设置,在其下拉列表框中选择适当粗细的线条磅值。q利用同样的方法,可以画出矩形。例如,在标题 “ 学生基本情况一览表 ” 上添加矩形,方法是先添加矩形控件,再将标题粘贴在矩形控件上。244、图像控件q 在报表中添加图片、公司的标志和学校的校徽,根据显示记录的不同显
20、示每个学生的照片 这些会使设计的报表图文并茂,更加美观。下面介绍如何添加图片。q 首先,单击报表控件工具栏中的图像控件按钮,将鼠标指针指向标题节的合适位置单击,屏幕出现 “ 插入图片 ” 对话框,在 “ 插入图片 ” 对话框中指定图片来源及图片文件名,单击 “ 确定 ” 按钮,则可在报表视图中显示选中的图片。报表设计结果如图 5-31所 示。预览结果如图 5-32所 示。255.4 报表的高级设计q 实际应用过程中,经常需要按照某个指定的顺序排列记录数据,也会在报表设计时按选定的某个(或几个)字段值是否相等而将记录划分成组。将字段值相等的记录归为同一组,字段值不等的记录归为不同组。5.4.1
21、排序和分组数据q 排序一般用来整理数据记录,以便查找和输出。1、排序 qP140 【 例 5-7】26q排序是指按某个字段值将记录排序。而分组,是指按某个字段值进行归类,将字段值相同的记录分在一组之中。使用报表视图也可以根据一定的条件对记录进行分组输出,使具有相同条件的记录在一个组中。在设计视图方式打开相应的报表,单击工具栏上的 “ 排序与分组 ” 按钮,弹出对话框,在对话框上部的 “ 字段 /表达式 ” 和 “ 排序次序 ”栏中选定相应内容,则在下部出现 “ 组属性 ” 区域。q系统默认的排序顺序为升序排列。当需要对数据进行分组时,可以单击要设置分组属性的字段或表达式,然后设置其组属性。最多
22、可对 10个字段和表达式进行分组。2、分组 271)组页眉:用于设定是否显示该组的页眉。2)组页脚:用于设定是否显示该组的页脚。3)分组形式:选择值或值的范围,以便创建新组。或用选项,取决于分组字段的数据类型。4)组间距:指定分组字段或表达式值之间的间距值。5)保持同页:用于指定是否将组放在同一页上。28q下面对不同的分组情况进行介绍。( 1)按日期 /时间字段分组1)每一个值:按照字段或表达式相同的值对记录进行分组。2)年:按照相同历法中的日期对记录进行分组。3)季度:按照相同历法季度中的日期对记录进行分组。4)月份:按照同一月份中的日期对记录进行分组。5)周:按照同一周中的日期对记录进行分
23、组。6)日:按照同一天的日期对记录进行分组。7)时:按照相同小时的时间对记录进行分组。8)分:按照同一分钟的时间对记录进行分组。29( 2)按文本字段分组1) 每 一个值:按照字段或表达式相同的值对记录进行分组。2) 前缀 字符:按照字段或表达式中前几个字符相同的值对记录进行分组。( 3)按自动编号、货币字段或数字字段分组1) 每 一个值:按照字段或表达式中相同数值对记录进行分组。2) 间隔 :按照位于指定间隔中的值对记录进行分组。( 4)设置排序与分组的步骤q在对报表中数据进行分组时,可以添加组页眉或组页脚。组页眉通常包含报表数据分组所依据的字段,称为分组字段,而组页脚通常用来计算每组的总和或其他汇总数据。它们不一定要成对出现。qP141 【 例 5-8】305.4.2 创建有计算数据的报表q报表设计过程中,经常要进行各种运算并将结果显示出来。如,页码的输出、分组统计平均成绩的数据输出等均是通过设置绑定控件的控件来源为计算表达式来实现的,这些控件就称为 “ 计算控件 ” 。 1、报表添加计算控件 q计算控件的控件来源是计算表达式,当表达式的值发生变化时,会重新计算结果并输出。qP142 【 例 5-9】 , P143 【 例 5-10】