组页脚范围不包括明细行吗?

时间:2018-08-24 20:36:41

标签: reporting-services crystal-reports reportbuilder3.0

我有一个Crystal报表,试图将其转换为Report Builder中的SSRS报表。在我的Crystal Report中,我有9个组,其中一些组显示了页眉和页脚,还有一些附加的页脚详细信息(有条件地显示)。

我有我的分组以及在SSRS报告中创建的所有页眉和页脚,但是我很难确定如何隐藏某些组页脚,这是基于Crystal中的公式字段的。 / p>

在Crystal中,我有2个运行总计字段和一个基于这2个运行总计字段的公式。每个运行总计字段仅是在组更改时重置的计数。该公式是第一个对第二个的修正,以及其他一些条件。根据该公式,是否可以隐藏组页脚。

在Report Builder中,组6具有第一个运行总计(组变量inv_count),组8具有第二个运行总计(组变量group_count)。在详细信息部分中,我将Group varialbe(用于测试,仅inv_count-group_count)命名为mod

当我在第6组的页脚之一中放置一个带有mod的文本框并运行报表时,出现以下错误:The Value expression for the text box ‘Textbox169’ refers to the Variable ‘mod’. Expressions can only refer to a Variable declared within the same grouping scope, a containing grouping scope, or those declared on the report. 页脚是否未包含在组范围内,或者明细未包含在页脚范围内?

这可能是我们所拥有的最复杂的报告,但是如果我们不能移植它,那就太麻烦了。

感谢您的见解。

2 个答案:

答案 0 :(得分:0)

为了让您放心,报表生成器应该能够处理所有报表转换。在上一份工作中,我们做了同样的事情,将所有人都转换了。

我会避免使用组变量。老实说,我从未使用过它们。要了解的重要一点是表达式的范围。例如,如果您只输入:

=Sum(Fields!inv_count.Value - Fields!group_count.Value)

这将为您提供当前范围内的总数。因此,它会根据其所属的任何组进行自然过滤。您也可以像这样覆盖范围:

=Sum(Fields!inv_count.Value - Fields!group_count.Value, "group8")

现在,您可以在该特定组中获得总计。您也可以将两个表达式一起使用以进行比较。这些本质上与组变量相同。如果您尝试将范围覆盖到不可用的组,则会遇到麻烦。

我认为这是我能给出的最佳答案,而无需了解有关报告布局和数据结构的更多细节。这是一般性建议,应该为您指明正确的方向。

答案 1 :(得分:-1)

组页脚作用域包含明细行,但详细信息行的范围不包含外部组的页脚行。

“详细信息”部分是报告的最内部组。该组中定义的变量只能在此处访问。如果要在特定组中使用变量,则必须在该组中或更远的组中(或在报告级别,这是最外面的范围)定义该变量。组变量的范围是该组和内部组,直到零售行。

示例(已添加):

想象一个出现在客户提交的订单上的产品列表。在 product 级别上,您可以说出 customer 的名称,但是在 customer 级别上,您不能说出“ 产品”(因为客户提交了多个包含多个商品订单)。