【发布时间】:2012-05-19 04:55:07
【问题描述】:
我有一个连接父表和明细表的数据源,因此每个明细记录的父数据都是重复的,如下所示:
ParentCol DetailCol-1 DetailCol-2
A Orange 15
A Pinaple 10
A Grape 8
B Orange 10
B Grape 7
我需要使用主报表在主报表上显示父列,并使用子报表将其与相同数据链接到使用“ParentCol”列的子报表。我会将相同的数据源传递给主报表和子报表,因为我不会进行两次查询,并且我们希望通过这个想法来提高性能。请注意,我不能使用分组来实现这一点。
第 1 页 - 主要报告
ParentCol: "A"
子报告
Orange 15
Pinaple 10
Grape 8
第 2 页 - 主要报告
ParentCol: "B"
子报告
Orange 10
Grape 7
我怎样才能做到这一点?
编辑:
@Ryan 是对的,问题是我试图在不同的信息上下文中使用相同的数据源。我当然可以仅使用主/详细模式来可视化所需的数据,并且主列不会重复,但会根据需要显示详细信息。
如果我使用与主报告中使用的数据相同的子报告,我可能会生成详细信息中显示的笛卡尔积,即使我使用子报告链接也是如此。它不会工作。
因此,我将避免对主报表和子报表使用相同的查询
【问题讨论】:
-
您使用子报表是否有特定原因?如果您想将报告限制为单个查询,则需要避免使用它们。
-
我也不认为需要子报告。您可以使用单个分组级别 (ParentCol)、组标题部分和详细信息部分来完成此操作。如果您需要保留原始排序顺序,请确保将组配置为“原始顺序”。
-
我正在使用子报表,因为这不是我将在报表中显示的唯一数据。那么,我应该停止使用子报表来完成这项任务吗?为什么?
-
这里不使用子报表的原因:(1) 到目前为止,没有任何迹象表明您需要一个,(2) 子报表增加了设计复杂性,以及 (3) 子报表通常会减慢报表的执行速度。
标签: crystal-reports