求和公式问题的最大值和最小值
您好,我目前正在使用Crystal Reports 2008,它从Oracle数据库获取数据。我仔细研究了这个问题,但我无法找到所需的信息。我有关于从给定公式中获取最大值和最小值的查询,该公式总计包含2个或更多字段。我正在使用的信息的快照是:
Field1 = dB1.Left_Serious
Field2 = dB1.Left_Dangerous
Field3 = @Tester
Formula = @LeftTot
字段1 + 2是测试者为每次左测试给出的总分。
Test Field1 Field2 Field3
1 2.0 4.0 J Adams
2 1.0 1.0 J Adams
3 1.0 0.0 S Grey
4 0.0 1.0 S Grey
5 5.0 0.0 D Jones
6 5.0 8.0 D Jones
获得每个测试人员左测试的总计的公式使用测试人员的分组:
@LeftTot
Sum ({dB1.Left_Serious}, {@Tester}) + Sum (dB1.Left_Dangerous}, {@Tester})
使用上述详细信息,我们得到:
J Adams = 8.0
S Grey = 2.0
D Jones = 18.0
因此,最大数字为18.0,最小数字为2.0,所需差异为16.0。
我遇到的问题是我无法使用最大或最小命令,因为Crystal 2008不允许您在总和两个字段的公式上使用像“最大值”这样的汇总函数。我知道你可以在数据库中创建一个新的聚合字段来解决问题,但是我目前没有数据库的管理员访问权限,也无法创建任何新的数据表或字段。
我试图通过在3个新公式中使用以下代码来推动球滚动:
@LeftTotGrpHdr
//This Formula needs to be placed into the Group Header to reset variable
WhilePrintingRecords;
NumberVar LEFTTL:=0
@LeftTotGrpFtr
//This Formula needs to be placed into the Group Footer to display variable
WhilePrintingRecords;
NumberVar LEFTTL
@LeftTotCr
//This Formula declares and works out Total Left Tests
WhilePrintingRecords;
Global NumberVar LEFTTL:=LEFTTL + {@LeftTot}
然而,当我尝试使用
时Maximum({@LeftTotCr})
在新公式中我仍然收到错误消息“此字段无法汇总。”
还有其他办法吗?
干杯
Daveyt
答案 0 :(得分:0)
有一种解决方法。
当您汇总该值时,同时将值存储在数组中并从数组中反转最大值和最小值。
//@LeftTot
Shared StringVar Array x;
x:=x+totext(Sum ({dB1.Left_Serious}, {@Tester}) + Sum (dB1.Left_Dangerous}, {@Tester}));
1
现在再创建一个公式@display
EvaluateAfter(@LeftTotal);
Whileprintingrecords;
Shared StringVar Array x;
Maximum(x);
以同样的方式使用minimum
函数进行最小化。
让我知道它是怎么回事。