技术开发 频道

ASP.NET下基于水晶报表编程的分组报表

  【IT168 专稿】在本系列第一篇中,我们给出了示例网站的轮廓构建,并详细分析了创建到SQL Server 2008示例数据库AdventureWorks连接的具体步骤。在第二篇中,我们详细描述了如何使用现有的数据库连接数据创建Crystal Report报表的页眉。在本文(最后一篇)中,我们要进一步探讨如何创建更为重要和实用的具有一对多关联关系的分组数据报表。此外,我们还将详细讨论Crystal Report Viewer的使用方法。

  一、实现分组报表

  根据一般的要求,当显示报告时,对应于当前销售订单编号的所有的销售订单详细记录都应显示出来。要做到这一点,你可以创建基于SalesOrderNumber字段的组,然后在组页脚后添加一个分页符。当你把一个组添加到报表中时,水晶报表将自动添加一对组页眉和组页脚节。你可以进一步动态地调整它们的格式。

  对于我们的报告来说,我们要实现在组页脚后进行分页,以便在下一页上显示下一条发票,而且,我们要重置页码,以便您可以独立地打印出发票和独立地邮寄这些发票。

  请遵循如下步骤操作:

  (1)切换到主报告视图。右键单击报表中任何空白处,并从弹出式菜单中选择插入“Insert Group…”。

  (2)随后会出现“Insert Group”对话框。从下拉列表框中选择字段SalesOrderHeader.SalesOrderNumber,并单击按钮OK。

  图1  从“Insert Group”对话框中选择分组依据

  (3)你会注意到报表中新添加了两个节:Group Header #1和Group Footer #1。默认情况下,系统会把一个名字为“Group #1 Name”的特殊域添加至Group Header #1部分。这将显示您将根据分组的字段。在本报表中,我们不需要组名(Group Name),因为它对应于销售订单号(将在页眉处打印它)。因此,你可以移除这个字段—只需要选择此字段,然后按下Delete键。

  (4)另外,我们不需要显示Group Header #1,所以,我们可以压缩此节。方法是右键单击此节头部,然后在弹出菜单中选择“Suppress (No Drill-Down)”。

  (5)下一步是告诉水晶报表在页眉之后的位置处进行分页,并且重置页码。为此,右键单击“Group Footer #1”节标题,并从弹出式菜单中选择“Section Expert”。

  (6)勾选“New Page After”选项附近的“Reset Page Number After”选项,并单击“OK”按钮。如图2所示。

  图2  使用“Section Expert”对话框重置页码

0
相关文章