Crystal reports 多个汇总值的最大值

Crystal reports 多个汇总值的最大值,crystal-reports,Crystal Reports,我很难从组部分的多个汇总值中获取最大值。例如,我在报告组部分总结了预算、承诺、成本和预测总额,现在在组页脚中,我需要选择四个总额的最大值。我该怎么做 编辑 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

我很难从组部分的多个汇总值中获取最大值。例如,我在报告组部分总结了预算、承诺、成本和预测总额,现在在组页脚中,我需要选择四个总额的最大值。我该怎么做

编辑

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}) 

我需要在“组页脚”部分的四个总计中找到最高值,您需要为第一个变量初始化和第二个值大于其他值的条件创建两个公式字段

1:创建第一个公式字段,并写下以下代码。将该公式字段的名称指定给Initialization

然后将公式字段放在报告标题部分

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;
现在,将此公式字段放在计算汇总值的位置。例如,在组页脚中

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;
更新:

如果您想找出四组合计的最大值。然后在公式字段中写下以下代码,并将其放在组页脚中

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;

尝试使用数组

将所有值存储在一个数组中,在组页脚中只取数组的最大值

同时汇总值时,将值存储在数组中并从数组中检索最大值。在组中汇总数据后,将其放在公式下方

//@Storedatainarray  
Shared StringVar Array x;

x:=x+totext(Sum ({field}, {@group}));
现在再创建一个公式@display

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

Maximum(x);
让我知道进展如何

编辑

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}) 
创建一个公式@Display并在组页脚中写入以下代码:


你好,莎拉。我不太清楚,但我认为你应该创建一个公式字段,在这里你可以写出来检查哪个值比上一个值大。@Sarah我编辑了你的问题来添加你的编辑。。。所以这个问题会更有意义谢谢。我试试看,不行。它没有从四组总计预算、承诺、成本、预测中选择最大值……我的四组总计是:1组总计{@Total Contracted value},{JCM_MASTER_成本代码.成本代码},2组总计{@Current budget},{JCM_MASTER成本代码.成本代码}3组总计{@Costs todate},{JCM_MASTER成本代码.成本代码}4组总计{@Projected Final PM Input},{JCM_MASTER_uucost_CODE.COST_CODE}我需要在组页脚部分的四个总计中找到最高值,你确定吗!!你只想找出这四个值中哪一个更大?这是行不通的。这四列以不同的方法汇总,但不知何故,在group footer total部分,我需要比较这四个总计并选择最大值。例如,如果总预算是5000,承诺是3000,到目前为止的成本是6000,预测是5500。我需要一个公式来显示6000。你能编辑你的问题以包括报告结构吗?这样我就能理解确切的问题1总和{@Total Contracted Value}、{JCM_MASTER_COST_CODE.COST_CODE}、2总和{@Current Budget}、{JCM_MASTER COST_CODE.COST_CODE}3总和{@Costs to Date JCM_MASTER COST_COST_CODE.COST_CODE}4总和{@Projected Final PM Input},{JCM_MASTER_uuucost_CODE.COST_CODE}我需要在组尾部分的四个总计中找到最高值