目录
一、什么是子报表?
二、通过使用子报表组合不相关的报表
三、对无法链接的数据使用子报表
四、在单个报表中显示相同数据的不同视图
五、一对多链接
----------------------------------
一、什么是子报表?
子报表是报表中的报表。创建子报表的过程与创建常规报表的过程相似。子报表有报表的大多数特性,包括它自己的记录选择条件。子报表与主报表之间的唯一区别是子报表:
是作为对象插入到主报表中;它不能独立存在(但可以将子报表另存为主报表)。
可以放置在报表的任意一节内,整个子报表将在该节中打印。
不能包含另一个子报表。
不要包含页眉或页脚节。
有四种情况通常要使用子报表:
1、将不相关的报表组合到单个报表中。请参阅通过使用子报表组合不相关的报表。
2、协调本无法链接的数据。请参阅对无法链接的数据使用子报表。
3、在单个报表中显示相同数据的不同视图。请参阅在单个报表中显示相同数据的不同视图。
4、从在查阅字段上没有索引的字段中执行一对多查阅。有关更多信息,请参阅一对多链接。
注意: 使用按需要显示子报表而不使用常规的现场子报表可以提高包含子报表的报表的性能。
----------------------------------
二、通过使用子报表组合不相关的报表
有时,可能希望将不相关的报表组合到单个报表中。例如,可能希望创建单个报表来表示:
按销售代表分组的销售额。
按项目分组的销售额。
虽然两个报表都处理销售数据,但两个报表之间没有真正的线性关系。
可以使用子报表将不相关的报表组合到像这样的单个报表中。虽然报表可以基于相同的数据集,但不必非这样。它们可以分别基于完全不同的数据集。
这些报表中的每一个都是独立的;任何报表中的数据不以任何方式链接到另一个报表中的数据。这是最容易使用的子报表选项。
有关所有详细信息,请参阅组合两个或更多不相关的报表。
----------------------------------
三、对无法链接的数据使用子报表
只要满足下列条件,就可以在报表中链接表:
链接字段都是数据库字段。
链接字段包含相似数据。
链接字段的长度相同。
与(查阅)表链接的链接字段有索引(仅对于 PC 数据库)。
链接表很少有问题。但是,有些情况下不能协调不同表中的数据,因为数据不满足链接条件。
例如,不能在单个报表中与公式字段进行相互链接,也不能链接两个没有索引的表。这时必须使用子报表。
----------------------------------
四、在单个报表中显示相同数据的不同视图
子报表可用于在主报表中提供数据的不同视图。例如,可能需要在报表上部显示汇总值,在下部显示详细信息。
这可以通过多种不同的方法完成。两种最容易的方法是:
将汇总报表创建成主报表,将详细信息报表创建成子报表。在此方法中,详细信息子报表放置在“报表页脚”节中。
将详细信息报表创建成主报表,将汇总报表创建成子报表。在此方法中,汇总报表放置在“报表页眉”节中。
使用适当的链接字段链接报表和协调数据。
----------------------------------
五、一对多链接
本教程说明如何使用 Xtreme.mdb 示例数据库中的“客户”、“信用”和“订单”表来创建 A 到 B、A 到 C 报表。Xtreme.mdb 数据库位于 \Program Files\Crystal Decisions\Crystal Reports\Samples\Chs\Databases 目录。请将这里的说明作为使用自己的数据库文件创建 A 到 B、A 到 C 报表的指导方针。
创建 A 到 B、A 到 C 链接
在“标准”工具栏上,单击“新建”。
在 Crystal Reports 库 上单击“作为空白报表”,然后单击“确定”。
展开“数据库文件”文件夹。
选择 Xtreme.mdb 数据库文件,然后展开它的“表”文件夹。
突出显示“信用”表,然后将其添加到“选定的表”区域。
对“客户”和“订单”表重复前面的步骤。
添加完全部三个表后,单击“数据库专家”对话框上的“链接”选项卡。
如果默认情况下这些表之间存在链接,单击“清除链接”。
手动将“信用”表中的“客户信用 ID”字段链接到其它两个表中的“客户 ID”字段。
单击“对链接排序”。
出现“对链接排序”对话框。
选择一个链接,然后使用向上或向下箭头按照所需顺序排列链接。
单击“确定”返回“数据库专家”的“链接”选项卡。
单击“确定”关闭“数据库专家”。
现在在三个表中建立了 A 到 B、A 到 C 的关系。