在设计报表时,有时所要报表的数据是成组出现的,需要以组为单位对报表进行处理。例如在教师花名册时,为阅读方便,需要按所在部门或职称进行分组。利用分组可以明显地分隔每组记录,使数据以组的形式显示。组的分隔是根据分组表达式进行的,这个表达式通常由一个以上的表字段生成,有时也可以相当复杂。可以添加一个或多个组、更改组的顺序、重复组标头或者更改、删除组带区。
分组之后,报表布局就有了组标头和组注脚带区,可以向其中添加控件。组标头带区中一般都包含组所用字段的“域控件”,可以添加线条、矩形、圆角矩形,也可以添加希望出现在组内第一条记录之前的任何标签。组注脚通常包含组总计和其他组总结性信息。
报表布局实际上并不排序数据,它只是按它们在数据源中存在的顺序处理数据。因此,如果数据源是表,记录的顺序不一定适合于分组。当设置索引的表、视图或查询作为数据源时,可以把数据适当排序来分组显示记录。排序必须使用视图、索引或布局外的其他形式的数据操作来完成。
1.添加单个数据分组
一个单组报表可以基于输入表达式进行一级数据分组。例如,对教师表按字段排序后,可以把组设在“职称”字段上来打印所有记录,相同职称的记录在一起打印。
添加单个数据分组的步骤如下:
从快捷菜单或“报表”菜单中,选择“数据分组”。出现“数据分组”对话框。
(1)这里的属性设置包括打印标头和注脚文本来区别各组,在新的一页上打印每一组,当某组在新页上开始打印时,重置页号。
对话框选项意义如下:
①分组表达式。显示当前报表的分组表达式,如字段名,并允许输入新的字段名。如果想创建一个新的表达式,可选择对话按钮,显示“表达式生成器”对话框。
②组属性。此属性用以指定如何分页。
③每组从新的一列上开始。当组改变时,从新的一列上开始。
④每组从新的一页上开始。当组改变时,从新的一页上开始。
⑤每组的页号重新从1开始。当组改变时,组在新页上开始打印,并重置页号。
⑥每页都打印组标头。当组分布在多页上时,指定在所有页的页标头后打印组标头。
⑦小于右值时组从新的一页上开始。要打印组标头时,组标头距页底的最小距离。
⑧插入。在“分组表达式”框中插入一个空文本框,以便定义新的分组表达式。
⑨删除。从“分组表达式”框中删除选定的分组表达式。
(2)在第一个“分组表达式”框内键人分组表达式。或者选择对话按钮,在“表达式生成器”对话框中创建表达式。
(3)在“组属性”区域,选定想要的属性。
(4)选择“确定”按钮。
添加表达式后,可以在带区内放置任意需要的控件。通常,把分组所用的域控件从“细节”带区移动到“组标头”带区。
2.添加多个数据分组
有时需要对报表进行多个数据分组,如在打印教师花名册时在用“所在部门”分组的基础上,还想按职称分组,这也称为嵌套分组。嵌套分组有助于组织不同层次的数据和总计表达式。在报表内最多可以定义20级的数据分组。
添加多个数据分组步骤如下:
(1)从“报表”菜单中,选择“数据分组”。出现“数据分组”对话框。
(2)在第一个“分组表达式”框内键人分组表达式。或者选择对话按钮,在“表达式生成器”对话框中创建表达式。