【问题标题】:Crystal Reports: Distinct Header RowsCrystal Reports:不同的标题行
【发布时间】: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


【解决方案1】:

右键单击您已经拍摄的水晶报表。

选择插入选项并选择子报表以插入子报表。

然后右键单击子报表并选择编辑子报表并使用您想要的字段绑定到子报表。

然后来到主报告。

再次右键单击子报表并选择更改子报表链接选项卡以在主报表字段和子报表字段之间建立关系。

现在点击预览。您将获得所需的输出。

【讨论】:

  • 我发现在主报表和子报表上使用相同的数据集并不是一个好主意,因为我永远不会得到想要的输出
  • 这种方法可行并且确实避免了笛卡尔积,但如上所述,在这种情况下似乎不需要子报表。
猜你喜欢
  • 2014-11-25
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多