第5章 报 表
. J* k7 t0 Z3 W! |( O* w, p 报表是Access提供的一种对象。报表对象可以将数据库中的数据以格式化的形式显示和打印输出。报表的数据来源与窗体相同,可以是已有的数据表、查询或者是新建的建的SQL语句,但报表只能查看数据,不能通过报表修改或输入数据。本章主要介绍报表的一些基本应用操作,如报表的创建、报表的设计,分组记录及报表的存储和打印等内容。" z, ^9 ~* b( ]3 `$ \+ X
5.1 报表的基本概念与组成
. S" o$ a3 \; s- q8 r# Z# g 5.1.1 报表基本概念
1 c( B. A5 P& | i0 ? 报表的功能包括:可以以格式化形式输出数据;可以对数据分组,进行汇总;可以包含子报表及图表数据;可以输出标签、发票、订单和信封等多种样式报表;可以进行计算、求平均、求和等统计计算;可以嵌人图像或图片来丰富数据显示。5 t& ]# G7 x0 x ^
Access为报表操作提供了3种视图:“设计:视图、”打印“视图”和“版面预览”视图。其中“设计”视图用于创建和编辑报表的结构;“打印预览”视图用于查看报表的页面数据输出形体;“版面预览”视图用于查看报表的版面设置。
& O) e6 V# }5 Z6 \) W1 ~; b 在设计报表时可以添加表头和注脚,可以对报表中的控件设置格式,例如字体、字号、颜色、背景等,也可使用剪贴画、图片对报表进行修饰。这些功能与窗体设计相似。$ _: z# P, t, B; L3 x! i
图5.1是一个打开的报表“设计”视图,可以看出报表由如下几部分区域组成:
# M4 i4 F W- q9 {9 |
8 V5 s2 ?; }6 i4 }1 R (1)报表页眉:在报表的开始处,用来显示报表的大标题、图形或说明性文字,每份报表只有一个报表页眉。在图5. 1中,报表的大标题就是“学生选课成绩表”。) r4 J5 _+ E |0 j5 T5 z* }' j" k
(2)页面页眉:显示报表中的字段名称或对记录的分组名称,报表的每一页有一个页面页眉,以保证当数据较多报表需要分页的时候,在报表的每页上面都有一个表头。
3 l" F2 p6 n# W, ~# W6 a! a (3)主体:打印表或查询中的记录数据,是报表显示数据的主要区域。
+ K: Y% J6 [" } (4)页面页脚:打印在每页的底部,用来显示本页的汇总说明,报表的每一页有一个页而页脚。按照图5.1的报表设计,将在报表的每一下面输出页码。: u, A, |3 P6 o8 K- X0 H) D- W5 k
(5)报表页脚:用来显示整份报表的汇总信息或者是说明信息,在所有数据都被输出后,只输出在报表的结束处。按照图5.里的报表设计,将在报表的最后输出记录数J3 a
7 K- H; u! M; Z- k 以上各个区域具有不同的功用,可以根据需要进行灵活设计。9 i9 J; O" j5 b" ^
5.1.2 报表设计区$ J* ]( y7 u0 M1 s8 T: u. d4 _# ]
设计报表时。可以将各种类型的文本和字段控件放在报表“设计”窗体中的各个区域内。在报表设计的时候可以根据数据进行分组,行程一些更小的一些区段,在报表的“设计”视图中区段称为“节”。报表中的信息可以安排在多个节中,每个节在页面上合报表中具有特定的目的并按照预期顺序输出打印。 ~) t A8 u/ ~
下面,结合“学生选课成绩表”报表的图5.1“设计”视图控件安排和图5.2报表内容输出,介绍设计区各节的功能、控件安排及与其报表输出内容的对应关系。4 a3 r( D7 G. N) f
1.报表页眉节7 {8 u- |6 p* J2 z
报表页眉中的全部内容都只能输出在报表的开始处。在报表页眉中,一般是以大号字体将该份报表的标题放在报表顶端的一个标签控件中。图5.1中报表页眉节内标题文字“学生选课成绩表”放在标签控件中,显示结果见图5.2,在报表首页顶端作为报表标题。& B- b5 R' G5 P
/ I2 I; D: S2 T- h3 R, D% F 可以在报表中通过设置控件格式属性改变显示效果,也可在报表页眉中输出任何内容。. Z- U8 Y: S+ N( ^9 u: R
2.页而页眉节0 I0 w3 m8 {3 u* Y8 \
页面页眉中的文字或控件一般输出在每页的顶端。通常,它是用来显示数据的列标题。
9 h X+ u C' } 在图5.1中,页面页眉节内安排的标题为“编号”、“姓名”等标签控件会输出在图5. 2报表每页的顶端,作为数据的列标题。在报表的首页这些列标题输出在报表页眉的下方。 可以给每个控件文本标题加上特殊的效果,如加颜色、字体种类和字体大小等。6 p7 B4 c# G" b, c% `8 s5 w! c# I
一般来说,报表的标题放在报表页眉中,该标题输出时仅在第一页的开始位置出现。如果将标题移动到页面页眉中,则在每一页上都输出显示该标题。4 U# x7 i/ j0 |- S4 k
3.组页眉节
/ Y( O2 O+ @1 ~, g* R 根据需要,在报表设计5个基本节区域的基础上,还可以使用“排序与分组”属性设置“组页眉/组页脚”区域,以实现报表的分组输出和分组统计。其中组页眉节内主要安排文本框或其他类型控件以输出分组字段等数据信息。
" x+ _8 p4 V# Z# R 图5.3给出的“学生选课成绩分组汇总表”设计视图是以学生“编号”进行分组统计。
( u( c, K Q* u& j& [5 s
8 A7 v3 i8 m3 l' G4 h6 ]# v- D 在图5.3中,通过“排序与分组”属性可设置出分组字段的组页眉(编号页眉)和组页脚(编号页脚)两个节区。在“编号页眉”节内,安排了显示分组字段“编号”和字段“姓名”数据的两个文本框控件,输出时数据仅在每组开始位置显示一次,显示效果见图5.4。
$ W# [3 Y# Z6 T
$ e1 c5 E6 @' u' F6 F 可以建立多层次的组页眉及组页脚,但一般不超过3~6层。
1 @ |7 k& I! } 4.主体节2 \ A& p* f0 q8 O% r- C+ k/ A8 c# R
主体节用来定义报表中最主要的数据输出内容和格式,将针对每条记录进行处理,各字段数据均要通过文本框或其他控件(主要是复选框和绑定对象框)绑定显示,可以包含通过计算得到的字段数据。: S4 {& z0 `; z5 n
根据主体节内字段数据的显示位置,报表又划分为4种类型:纵栏式报表、表格式报表、图表报表和标签报表。
$ w1 g. r) A/ i0 T7 J2 ~. t (1)纵栏式报表5 b, [" {7 B3 \3 `' v
/ `: w0 N9 X+ e, K6 n" N 纵栏式报表(也称为窗体报表)一般是在一页的主体节区内以垂直方式显示一条或多条记录。这种报表可以安排显示一条记录的区域,也可同时显示一对多关系的“多方”的多条记录的区域,甚至包括合计。在设计纵栏式报表时,字段标题信息与字段记录数据要安排在每页的主体字节内的。图5.5就是一个学生信息的纵栏式报表实例。 |