Crystal reports Crystal Reports 10:嵌套公式

Crystal reports Crystal Reports 10:嵌套公式,crystal-reports,formulas,Crystal Reports,Formulas,我有一份报告显示了五种不同的活动代码。我想将所有的相似代码相加,并将5个活动代码中的每一个代码的总数放在一个组页脚中。我有一个活动代码的工作,但想写一个公式,将寻找所有五个和每个总数。这就是我所拥有的: (如果{@activitycode_id}=“Not Ready”,则{iActivityCodeStat.ActivityTime}否则为0) 在一个公式中添加其他ifs的正确语法是什么?那么,对每一项进行合计的最佳方法是什么 谢谢大家! 有两种方法可以做到这一点:使用switch语句或使用r

我有一份报告显示了五种不同的活动代码。我想将所有的相似代码相加,并将5个活动代码中的每一个代码的总数放在一个组页脚中。我有一个活动代码的工作,但想写一个公式,将寻找所有五个和每个总数。这就是我所拥有的:

(如果{@activitycode_id}=“Not Ready”,则{iActivityCodeStat.ActivityTime}否则为0)

在一个公式中添加其他ifs的正确语法是什么?那么,对每一项进行合计的最佳方法是什么


谢谢大家!

有两种方法可以做到这一点:使用switch语句或使用running totals

在这种情况下,您指定如果活动代码为“未准备就绪”,则使用ActivityTime,如果将其添加到其中,则会将其他值合并到此公式字段中。也就是说,我不认为这是你想要使用的方法

出于您的需要,我认为您更适合基于
{iActivityCodeStat.ActivityTime}
创建一个运行总计字段,并且在“评估”部分,您应该为每个状态使用一个公式,如:

{@activitycode_id}= "Not Ready"
然后,当您将每个公式字段放入组页脚时,您将看到活动代码为“未准备就绪”的部分的总数。不要忘记将运行总计设置中的“重置”部分设置为“组更改时”,并选择该字段所在的组,以便为每个部分获得不同的值,而不是所有部分的运行总计


希望这有帮助。

如果使用If-then-else语句的If-place,请尝试选择case结构

Select {@activitycode_id}

Case "Not Ready": {iActivityCodeStat.ActivityTime}
Case "Sleeping": {iActivityCodeStat.ActivityTime}
//else
Default: 0
如果您试图单独合计每个活动代码,则可以插入交叉表

如果您希望比交叉表更灵活,则需要有一个公式字段来隔离每个activitycode,以便可以单独求和。例如:

//{@Not Ready}
If {@activitycode_id}= "Not Ready" Then {iActivityCodeStat.ActivityTime} Else 0

//{@Sleeping}
If {@activitycode_id}= "Sleeping" Then {iActivityCodeStat.ActivityTime} Else 0