Crystal reports Crystal Report-两个详细部分,每个部分显示各自的数据子集

Crystal reports Crystal Report-两个详细部分,每个部分显示各自的数据子集,crystal-reports,Crystal Reports,是否可以有一个包含两个详细信息部分的Crystal报告,每个部分都显示从报告链接到的SP返回的结果的子集 例如,在DetailA中我想要字段a在(a,b,c)中的记录,在DetailB中我想要字段a在(d,e,f)中的记录 我知道可以使用精选专家,但这似乎适用于整个报告,而不是每个单独的细节部分 如果我不需要创建公式,那就太好了,因为在细节部分中有大约20个字段。是否有某种主公式可以作为一个整体应用于详细信息部分?您只需按照所需的方式设置两个详细信息部分,并将所有要显示在每个详细信息部分中的记录

是否可以有一个包含两个详细信息部分的Crystal报告,每个部分都显示从报告链接到的SP返回的结果的子集

例如,在DetailA中我想要字段a在(a,b,c)中的记录,在DetailB中我想要字段a在(d,e,f)中的记录

我知道可以使用精选专家,但这似乎适用于整个报告,而不是每个单独的细节部分


如果我不需要创建公式,那就太好了,因为在细节部分中有大约20个字段。是否有某种主公式可以作为一个整体应用于详细信息部分?

您只需按照所需的方式设置两个详细信息部分,并将所有要显示在每个详细信息部分中的记录字段放在一起,就可以很简单地做到这一点。然后,将抑制公式添加到每个详细信息部分。通过右键单击该部分,选择“section Expert”,然后单击“Suppress(无深入查看)”旁边的公式按钮,可以访问每个部分的抑制公式

详细信息A部分:
not(['A'、'b'、'c']中的{table.fieldA})

详细信息B部分:
not(['d'、'e'、'f']中的{table.fieldA})


现在,您的详细信息A部分仅在记录类型为A、b或c时显示,而您的详细信息b部分仅在记录类型为d、e或f时显示。

Ryan的方法可行时,最好将其添加到公式字段中并按公式字段分组:

if {table.fieldA} In ['a','b','c'] then
    'Group 1'
else
    'Group 2'#
然后将详图A和B的抑制公式添加为:

{@MyGroup}='group2'
{@MyGroup}='group1'

这有三个好处:

  • 它将自动将这两个部分分为第1组和第2组
  • 它只会显示一个或另一个,并且总是显示一个,Ryan的方法可能会隐藏可能导致问题的意外细节
  • 它更容易维护,因为您不会在不同的部分中保留不同的列表

+1用于替代方法。最终,它取决于数据模型和报表的预期行为。如果这两种类型的记录需要不同的字段或不同的公式,则仍然需要两组详细信息部分。此外,任何不符合a、b、c标准的记录将被归为第2组,这可能导致不良行为或记录意外显示。