Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Global variables Crystal Reports 2008中求和公式的最大值和最小值_Global Variables_Max_Formula_Crystal Reports 2008_Minimum - Fatal编程技术网

Global variables Crystal Reports 2008中求和公式的最大值和最小值

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是测试人员为每个左侧测

求和公式问题的最大值和最小值

您好,我目前正在使用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

有一个解决方法

同时汇总值时,将值存储在数组中,并从数组中检索最大值和最小值

    //@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
是第二个。