当总权重为零时,将加权平均值显示为零而不是未定义

时间:2011-08-11 14:06:53

标签: string crystal-reports numbers

我试图取一个字段的加权平均值,让我们把它称为“X”,只要字段让它称之为“Y”加权平均值不是0,它就可以正常工作。但是,当Y时为0时,X的值不会出现在报告中,因为它不是未定义的值。

我想要做的是如果Y为0,则X将为= 0并在报告中显示为0.

我已经尝试了几件事来让它发挥作用,但是他们还没有成功。目前我要做的是设置一个显示字符串格式公式来尝试获取它,这样如果Y为0则X为0并显示此值,但这需要一个字符串作为最终结果。

stringvar s;
NumberVar x := Weighted Average ( fieldX)
numbervar y := fieldY
if Y = 0 then x = 0;
X;

所以我的问题是如何将numberVar转换为stringVar,还是有更好的方法去做我希望完成的事情?

1 个答案:

答案 0 :(得分:1)

在我看来,你根本不需要涉及stringvars。该代码中存在一些语法错误。如果您使用以下小改动编写的公式,它应该在报告

中正常显示
numbervar x := weightedaverage(...);
numbervar y := {fieldY};
if y = 0 then x:= 0;
x

然而,更简单的方法是放弃使用变量

if {fieldY} = 0 then 0 else weightedaverage(...)