2010-04-01 137 views
0

我有一份显示五种不同活动代码的报告。我想总结所有类似代码,并将5个活动代码中的每一个的总数放在组页脚中。我有一个活动代码工作,但想写一个公式,它会查找所有五个和总计。这是我有:Crystal Reports 10:嵌套公式

(如果{@activitycode_id} =“未准备好”,那么{} iActivityCodeStat.ActivityTime其他0)

什么是正确的语法添加额外的IFS成一个公式?那么最好的方法来总结每一个?

谢谢!

回答

0

我会这样做的两种方法是使用switch语句或使用运行总计。

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

你想要的东西,我觉得你更适合于创建基于{iActivityCodeStat.ActivityTime}和“评估”一节中运行总计字段中应该使用公式像每一种状态:

{@activitycode_id}= "Not Ready" 

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

希望这会有所帮助。

0

如果存在if-then-else语句,请尝试使用select-case结构。

Select {@activitycode_id} 

Case "Not Ready": {iActivityCodeStat.ActivityTime} 
Case "Sleeping": {iActivityCodeStat.ActivityTime} 
//else 
Default: 0 

如果你想独立合计每个活动代码,你可以插入一个交叉。

如果您想要比CrossTab更具灵活性,您需要有一个公式字段来隔离每个活动代码,以便它可以单独求和。例如:

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

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