主题:[原创]线性报表教程-之二、分组报表
分组报表,是几乎所有的报表工具中,除了最简单的数据列表之外,最基本的报表类型。FineReport也不例外。在FineReport当中,有独立的分组报表格式,即新建分组报表之后,系统提供一个绑定数据的向导,用户根据这个向导指定分组,汇总字段,生成标准的分组报表。
那么如何利用FineReport的线性报表来创建分组报表呢?例如下面这张报表:
[img]http://pic.seekpai.com/1/179274_111b2b970a6_s.jpg[/img]
这张表的特点是:
1. 按照某个字段(班级和性别)进行了分组,分组后,这个分组字段被集中显示,作为组的标题。
2. 每一组(班级)还进行了计算,如该组总平均成绩的计算。
这张报表使用FineReport的制作方法,是将字段拖拽到设计界面中的单元格中,双击每个单元格,在系统弹出的设置对话框中(如下图),将班级列设置为分组,设置后单元格中显示的内容为(Simple.Group(ClassNo)),性别,姓名和学号列也分别进行分组的设置,显示在单元格中的内容为(Simple.Group(Sex)),(Simple.Group(StudentNo)),(Simple.Group(Name))。成绩的列设置为第一个值,例如(Simple.Grade),就完成了数据的主体区域。
[img]http://pic.seekpai.com/1/179274_111b2b971e8_s.jpg[/img]
每个办机组内平均数的计算也是最基本的方式,即=AVERAGE()的公式,基本上所有的报表工具都可以支持,注意这里我们需要得到班级组内的平均成绩,需要将平均成绩所在的单元格的左父格进行自定义,即E7的左父格需要自定义为班级列所在的单元格A6。这张报表的设计图如下所示:
[img]http://pic.seekpai.com/1/179274_111b2b972c8_s.jpg[/img]
需要注意的,虽然我们在设计界面中看到的单元格内容是Simple.Group(Name)格式,但是实际这些内容并非手动写入的公式,您不需要使用键盘功能,而只需要用鼠标将左侧的数据列拖拽进单元格,然后双击该单元格,进行类型的设置即可,除表头和平均分计算的汇总区域外,数据列的绑定只需要通过鼠标操作完成。
上面这张报表,可以说是最标准的横向分组报表。但是分组报表也会出现变化,最基本的就是组标题(组头)不是在左边,而是在上面或者下面,如下图所示:
[img]http://pic.seekpai.com/1/179274_111b2b973b5_s.jpg[/img]
说明:
1、 这张报表的数据和上一张是完全相同的,只是分组字段更改了位置。
2、 为了加重分组字段的显示,我们在左侧添加了一个编号,便于区分组字段和组内数据。
这张报表的实现方式也很简单,在上一张报表的基础上,只需要更改班级和性别字段的摆放位置和其它字段的左父格即可。我们对照设计图来解释具体的设计方法:
[img]http://pic.seekpai.com/1/179274_111b2b974f9_s.jpg[/img]
1、 数据区与上一张报表不同的是,班级(ClassNo)和性别(Sex)字段不是在其它数据的左侧,而是放在上方的单元格中。
2、 性别(Sex)字段的左父格不是默认,而是自定义为班级(ClassNo)所在的单元格C7;
3、 学号字段(StudentNo)的左父格不是默认,而是自定义为性别(Sex)所在的单元格C8;
4、 平均分数E10单元格的左父格同样需要自定义为班级(ClassNo)所在的C7单元格;
5、 序号是一种独立的单元格元素,设置方法也非常简单。
更多内容请访问
[url=http://www.finereport.com]http://www.finereport.com[/url]
那么如何利用FineReport的线性报表来创建分组报表呢?例如下面这张报表:
[img]http://pic.seekpai.com/1/179274_111b2b970a6_s.jpg[/img]
这张表的特点是:
1. 按照某个字段(班级和性别)进行了分组,分组后,这个分组字段被集中显示,作为组的标题。
2. 每一组(班级)还进行了计算,如该组总平均成绩的计算。
这张报表使用FineReport的制作方法,是将字段拖拽到设计界面中的单元格中,双击每个单元格,在系统弹出的设置对话框中(如下图),将班级列设置为分组,设置后单元格中显示的内容为(Simple.Group(ClassNo)),性别,姓名和学号列也分别进行分组的设置,显示在单元格中的内容为(Simple.Group(Sex)),(Simple.Group(StudentNo)),(Simple.Group(Name))。成绩的列设置为第一个值,例如(Simple.Grade),就完成了数据的主体区域。
[img]http://pic.seekpai.com/1/179274_111b2b971e8_s.jpg[/img]
每个办机组内平均数的计算也是最基本的方式,即=AVERAGE()的公式,基本上所有的报表工具都可以支持,注意这里我们需要得到班级组内的平均成绩,需要将平均成绩所在的单元格的左父格进行自定义,即E7的左父格需要自定义为班级列所在的单元格A6。这张报表的设计图如下所示:
[img]http://pic.seekpai.com/1/179274_111b2b972c8_s.jpg[/img]
需要注意的,虽然我们在设计界面中看到的单元格内容是Simple.Group(Name)格式,但是实际这些内容并非手动写入的公式,您不需要使用键盘功能,而只需要用鼠标将左侧的数据列拖拽进单元格,然后双击该单元格,进行类型的设置即可,除表头和平均分计算的汇总区域外,数据列的绑定只需要通过鼠标操作完成。
上面这张报表,可以说是最标准的横向分组报表。但是分组报表也会出现变化,最基本的就是组标题(组头)不是在左边,而是在上面或者下面,如下图所示:
[img]http://pic.seekpai.com/1/179274_111b2b973b5_s.jpg[/img]
说明:
1、 这张报表的数据和上一张是完全相同的,只是分组字段更改了位置。
2、 为了加重分组字段的显示,我们在左侧添加了一个编号,便于区分组字段和组内数据。
这张报表的实现方式也很简单,在上一张报表的基础上,只需要更改班级和性别字段的摆放位置和其它字段的左父格即可。我们对照设计图来解释具体的设计方法:
[img]http://pic.seekpai.com/1/179274_111b2b974f9_s.jpg[/img]
1、 数据区与上一张报表不同的是,班级(ClassNo)和性别(Sex)字段不是在其它数据的左侧,而是放在上方的单元格中。
2、 性别(Sex)字段的左父格不是默认,而是自定义为班级(ClassNo)所在的单元格C7;
3、 学号字段(StudentNo)的左父格不是默认,而是自定义为性别(Sex)所在的单元格C8;
4、 平均分数E10单元格的左父格同样需要自定义为班级(ClassNo)所在的C7单元格;
5、 序号是一种独立的单元格元素,设置方法也非常简单。
更多内容请访问
[url=http://www.finereport.com]http://www.finereport.com[/url]