2014-11-07 96 views
0

我很難從組中的多個彙總值中獲取maxiumu值。例如,我在報告組部分總結了預算,承諾,成本和預測總數,現在在組頁腳中,我需要選擇四個總數中的最大值。我應該怎麼做?多個彙總值的最大值

編輯............................................. ...............

1) Sum ({@Total Contracted Value}, {JCM_MASTER__COST_CODE.Cost_Code}), 
2) Sum ({@Current Budget}, {JCM_MASTER__COST_CODE.Cost_Code}) 
3) Sum ({@Costs to Date}, {JCM_MASTER__COST_CODE.Cost_Code}) 
4) Sum ({@Projected Final PM Input}, {JCM_MASTER__COST_CODE.Cost_Code}) 

,我需要找到組頁腳節的四個總計

+0

Hello Sarah。我不完全知道,但我認爲你應該創建公式領域,你可以寫,以檢查哪個值比以前更大。 – Shell 2014-11-07 03:15:05

+0

@Sarah我編輯你的問題添加您的編輯...所以這個問題將更有意義 – Siva 2014-11-08 07:22:53

回答

0

您需要創建兩個公式領域內的最高值第一個用於變量初始化,第二個用於大於其他值的條件。

1:創建第一個公式字段並記下以下代碼。將該公式字段的名稱輸入Initialization

WhilePrintingRecords; 
numbervar dMax := 0; 

然後將該公式字段放置在報表頭部分中。

2:現在,創建另一個公式字段並記下該公式字段中的以下代碼。

WhilePrintingRecords; 
//dont initialize the 0 in this variable we have already initialized in 1st formula field 
numbervar dMax; 

//Following condition will check that current sum of that field is greater than 
//values stored dMax variable. If the condition is satisfied then value will be initialized 
//In dMax variable. 
if (IsNull(Sum({TableName.FieldName}, {TableName.GroupField})) = False AND 
    Sum({TableName.FieldName}, {TableName.GroupField}) > dMax) 
    dMax:=Sum({TableName.FieldName}, {TableName.GroupField}); 

dMax; 

現在,將此公式字段放在計算彙總值的位置。例如在組頁腳中。

UPDATE:

如果要找出最大值withing四組總。然後在公式字段中寫下以下代碼並將其放在組頁腳中。

WhilePrintingRecords; 
numbervar dMax1:=0; 
if (Sum ({@Total Contracted Value}, {JCM_MASTER__COST_CODE.Cost_Code})) > (Sum ({@Current Budget}, {JCM_MASTER__COST_CODE.Cost_Code})) 
    dMax1:=Sum ({@Total Contracted Value}, {JCM_MASTER__COST_CODE.Cost_Code}); 
else 
    dMax1:=Sum ({@Current Budget}, {JCM_MASTER__COST_CODE.Cost_Code}); 


numbervar dMax2:=0; 
if (Sum ({@Costs to Date}, {JCM_MASTER__COST_CODE.Cost_Code})) > (Sum ({@Projected Final PM Input}, {JCM_MASTER__COST_CODE.Cost_Code})) 
    dMax2:=Sum ({@Costs to Date}, {JCM_MASTER__COST_CODE.Cost_Code}); 
else 
    dMax2:=Sum ({@Projected Final PM Input}, {JCM_MASTER__COST_CODE.Cost_Code}); 

if (dMax1 < dMax2) 
    dMax1 := dMax2; 

dMax1; 
+0

謝謝。我會嘗試。 – Sarah 2014-11-07 04:06:18

+0

它不起作用。它不會從四組總數(預算,承諾,成本,預測)中選擇最大值... – Sarah 2014-11-07 18:03:07

+0

我的四組總數是: – Sarah 2014-11-07 18:10:01

0

嘗試使用數組...

存儲在數組中,並在組頁腳所有值只取最高的數組。

當您彙總值時,同時將值存儲在數組中,並從數組中檢索最大值。下面的公式發生之後中總結的數據組

//@Storedatainarray 
Shared StringVar Array x; 

x:=x+totext(Sum ({field}, {@group})); 

現在再創建一個公式@display

EvaluateAfter(@Storedatainarray); 
Whileprintingrecords; 
Shared StringVar Array x; 

Maximum(x); 

讓我知道是怎麼一回事呢?

編輯....................................

創建公式@Display和在group footer中寫下以下代碼:

Shared StringVar Array x; 

    x[1]:= Sum ({@Total Contracted Value}, {JCM_MASTER__COST_CODE.Cost_Code}); 
    x[2]:= Sum ({@Current Budget}, {JCM_MASTER__COST_CODE.Cost_Code}); 
    x[3]:= Sum ({@Costs to Date}, {JCM_MASTER__COST_CODE.Cost_Code}); 
    x[4]:= Sum ({@Projected Final PM Input}, {JCM_MASTER__COST_CODE.Cost_Code}); 
Maximum(x); 
+0

它不起作用。四列總結了不同的方法,但不知何故在小組足總節,我需要比較四個總數,並選擇最大值。例如,如果總預算是5000,承諾是3000,到目前爲止的成本是6000,預測是5500.我需要有一個公式來顯示6000. – Sarah 2014-11-07 18:05:37

+0

您是否可以編輯您的問題以包含報告結構,以便我能夠理解確切問題 – Siva 2014-11-07 18:07:44

+0

1)總和({@總合約值},{JCM_MASTER__COST_CODE.Cost_Code}),2)總和({@當前預算},{JCM_MASTER__COST_CODE.Cost_Code})3)總和({@收到日期},{JCM_MASTER__COST_CODE .Cost_Code})4)Sum({@Projected最終PM輸入},{JCM_MASTER__COST_CODE.Cost_Code}),我需要找到四個總計中的最高值在組頁腳部分 – Sarah 2014-11-07 18:12:38