2010-04-01 138 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