水晶报表排序、分组技术
报表数据的预设排列顺序会与数据库中的数据记录的存放顺序相同,因此会毫无规则且不会依照任何顺序来排列。
Crystal Reports
提供
“
记录排序专家
”
对话框来完成对报表数据的排序,如图
6.7
所示。
图
6.7
记录排序专家
在
“
记录排序专家
”
对话框打开后,从
“
可用字段
”
列表中将要排序的字段移至右侧
“
排序字段
”
列表中,然后选择单选按钮
“
升序
”
或
“
降序
”
,以便对此字段进行
“
升序
”
或
“
降序
”
排序。
在指定排序字段时,应注意以下事项。
l
所有的字段都可以作为排序字段,包括数据库字段与公式字段。
l
用来排序的字段不一定要出现在报表上,不过一般来说,排序的目的是为了让报表上的数据明显地依照特定的顺序排列,所以排序字段最好是出现在报表上的字段。
如果以
“
文本
”
类型字段作为排序字段来
“
升序
”
排序,数据将依下列顺序来排列。
l
空白
l
标点符号
l 0~9
l A~Z(
相同字母者,大写排在前,小字排在后
)
l
中文字符按其拼音字母
A~Z
的顺序来排序
如果以
“
文本
”
类型字段作为排序字段来
“
降序
”
排序,则正好与上述的顺序相反。
如果以
“
日期
/
时间
”
类型字段作为排序字段来
“
升序
”
排序,则空日期时间排在最前,然后较早的日期时间排列在前,较晚的日期时间排列在后。
“
降序
”
排序则正好相反。
如果以
“
数字
”
或
“
货币
”
类型字段作为排序字段来
“
升序
”
排序,则较小的数值排列在前,较大的数值排列在后。
“
降序
”
排序则正好相反。
如果以
“
布尔值
”
类型字段作为排序字段来
“
升序
”
排序,则
True
会排列在前,
False
排列在后。
“
降序
”
排序则正好相反。
排序能够使报表中相同的数据排列在一起打印,但如果想让数据更加层次分明,并且根据针对各组的数据进行分析、统计、运算,则必须将报表中的数据进行分组。
Crystal Reports
允许根据数据库字段或公式字段来分组报表中的数据记录,而且还允许进行嵌套组、层次分组与自定义组等功能,以上功能通过
Crystal Reports
提供一系列的对话框,
“
插入组
”
对话框、
“
组专家
”
对话框、
“
层次组选项
”
对话框。
(
1
)
“
插入组
”
对话框
“
插入组
”
对话框,主要是完成对报表分组的各项设置。在
Report for Visual Studio.NETk
中启用
“
插入组
”
对话框,有以下两种方法。
l
使用鼠标单击工具栏的
“
插入组
”
按钮
,如图
6.8
所示。
l
使用鼠标右键单击任意报表节的空白外,并从弹出的快捷菜单中选择
“
插入
/
组
”
命令,弹出
“
插入组
”
对话框,如图
6.9
所示。
图
6.8
工具栏启用
“
插入组
”
对话框
图
6.9 “
插入组
”
对话框
注意:在分组报表中数据之前,必须已设置报表的数据源。
打开
“
插入组
”
对话框后,在
“
排序和分组依据
”
两个下拉列表中指定组名字段与组名字段的排序顺序。
组名字段就是报表要分组的字段,组名字段可以是数据库字段或公式字段。
组名字段的排序顺序,有四种选择
“
按升序
”
、
“
按降序、
“
按指定顺序
”
和
“
按原始顺序
”
。
注意:组名字段的排序顺序并不是去设置该组中数据记录的排序顺序,而是设置报表要先打印出哪一个组的数据。
(
2
)
“
组专家
”
对话框
“
组专家
”
对话框提供了可以同时添加多个分组,并提供了一个可以访问所有当前组的中枢位置。启用
“
组专家
”
对话框,使用鼠标右键单击任意报表节的空白外,并从弹出的快捷菜单中选择
“
报表
/
组专家
”
命令,弹出
“
组专家
”
对话框,如图
6.10
所示。
图
6.10 “
组专家
”
对话框
在这个对话框中,通过上
和下
两个箭头按钮,组可以很容易地被重新排序,这两个箭头按钮位于对话框的右上角。
(
3
)
“
层次组选项
”
对话框
“
层次组选项
”
对话框能够使用户报表的数据动态地,按照数据分组层次显示在报表中。使用
“
层次组选项
”
对话框时,应当在报表中创建一个基础级数据分组。启用
“
层次组选项
”
对话框时,用鼠标右键单击任意报表节的空白外,并从弹出的快捷菜单中选择
“
报表
/
层次组选项
”
命令,弹出
“
层次组选项
”
对话框,如图
6.11
所示。
图
6.11 “
层次组选项
”
对话框