Global variables Crystal Reports 2008中求和公式的最大值和最小值
求和公式问题的最大值和最小值 您好,我目前正在使用Crystal Reports 2008,它从Oracle数据库获取数据。我已经详细调查了这件事,但我找不到我需要的信息。我有一个关于从一个给定的公式中获取最大值和最小值的问题,该公式总共包含2个或更多字段。我正在使用的信息的快照是:Global variables Crystal Reports 2008中求和公式的最大值和最小值,global-variables,max,formula,crystal-reports-2008,minimum,Global Variables,Max,Formula,Crystal Reports 2008,Minimum,求和公式问题的最大值和最小值 您好,我目前正在使用Crystal Reports 2008,它从Oracle数据库获取数据。我已经详细调查了这件事,但我找不到我需要的信息。我有一个关于从一个给定的公式中获取最大值和最小值的问题,该公式总共包含2个或更多字段。我正在使用的信息的快照是: Field1 = dB1.Left_Serious Field2 = dB1.Left_Dangerous Field3 = @Tester Formula = @LeftTot 字段1+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有一个解决方法 同时汇总值时,将值存储在数组中,并从数组中检索最大值和最小值
//@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
功能,以同样的方式进行minimum操作
告诉我进展如何。你好,湿婆,谢谢你回复我。但是,当我试图建立这个公式时,我想我遵循了你在这里所做的:共享StringVar数组x;x:=x+totext(Sum({dB1.Left_severy},{@Tester})+Sum(dB1.Left_severy},{@Tester}));我收到错误消息:此数组必须被订阅。例如:数组[i]。有什么想法吗?我现在没带工具。。。更改了代码。。让我知道它是如何工作的。。问题在于
数组
因此删除了数组,并将值存储在字符串中,然后找到最大值string@Dave-69更改了代码并进行了测试。。。这对我有用。。现在您可以再次使用上面的代码Hello Siva,我已经尝试了一次,但都无法工作。第一个通知我最大值(x)只对公式有效,第二个只是将公式设置为1。我是否将公式插入错误的位置?你能告诉我应该把你的数组公式放在哪里吗?@Dave-69我在实现后给出了这个公式,它对我非常有效/@LeftTot
在详细信息部分,您可以获取所有行,并将公式设置为suppress,但不要打印它<代码>@显示放在页脚中。。要获得最大值。。你拿错了@Lefttot
是第一个,而@display
是第二个。