知方号 知方号

水晶报表基础入门 报表怎么分类排序

水晶报表基础入门

水晶报表基础入门——4.水晶报表排序、分组技术 精选 转载

qianshao 2009-09-20 23:11:26 博主文章分类:水晶报表技术

文章标签 职场 休闲 水晶报表排序、分组技术 文章分类 数据结构与算法 人工智能

6.1.3  水晶报表排序、分组技术

报表数据的预设排列顺序会与数据库中的数据记录的存放顺序相同,因此会毫无规则且不会依照任何顺序来排列。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  “层次组选项”对话框

打赏 赞 收藏 评论 分享 举报

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。