0

我在报告中有一个组标题部分,它显示来自名为 Personal 的公式字段的汇总,

if not IsNull({AirBilling.BillingCode}) and {AirBilling.BillingCode} = 'P' then
    {AirBilling.Gross}
else
    0

现在,在报告页脚的报告末尾,我显示了在组标题部分中计算的所有个人总计的汇总总计。现在我有一个过滤某些记录的子报表,根据子报表返回的计数,我在主报表中隐藏记录。我的问题是,我的主要报告也在页脚总数中考虑了被抑制记录的计数。当我尝试在上面的公式字段逻辑中放置一个条件时,如果 RowCount>0 则..(如果不是 IsNull..),但是当我尝试运行报告时,它给了我一个错误,上面写着“摘要有在非经常性字段上指定'。有没有办法可以省略要在页脚部分计算的抑制记录。RowCount 是子报表返回的共享变量值,我用它来过滤主报表中的记录。

4

2 回答 2

0

Would it be possible to have another field, kept hidden, that ran a formula to determine if the row was suppressed or not. Based on that it shows a 0 or 1. Then you can tally that field for your row count.

Alternatively you could build that subreport off a stored procedure that generates a column that has already done the legwork for you. Then you can just use the data column it returns to assist with this problem.

于 2012-05-04T17:51:32.500 回答
0

据我了解,您正在尝试运行子报表以确定是否应排除主报表中的某些行(包括显示和总计)。您可以使用两种方法来解决此问题:

  • 在主报表的查询/存储过程中复制子报表中的逻辑,以便相关记录在到达 Crystal 之前被排除。不需要子报告。
  • 交换子报表和主报表(假设当前子报表中不需要来自当前主报表的数据,除了用户输入的参数)并将当前主报表中的相关数据传递给什么已成为子报表,作为参数。

我推荐前一种方法,因为 Crystal 作为格式化数据的工具比操作数据更好 - SQL 通常是一个更好的数据操作工具。

于 2012-05-04T06:44:17.140 回答