如何计算Crystal Reports中两个数字之间的GAP?

时间:2015-10-23 18:43:48

标签: syntax crystal-reports crystal-reports-xi

如果您有目标编号和实际编号,那么计算差距的简单方法就是:

{goal} - {actual}

但如果超过目标,则此数字将在报告中显示为负数。我的老板想要使用的惯例是在数字前加上一个“+”符号,以表明我们已超出目标。

我尝试编写一个公式,如果结果返回负数,则将结果乘以-1:

shared numbervar gap;
gap := {goal} - {actual}
if gap < 0 then gap := gap * -1
gap;

但它不起作用。

我的第一个问题是我做错了什么?

我的第二个问题是,有更好的方法吗?我在水晶报道中称之为Gap的其他东西是什么?

2 个答案:

答案 0 :(得分:1)

当您与-1相乘并不意味着它显示为+时...它不会显示任何负号表示它是正数。

通常在数学中如果在数字之前没有符号,则将其视为正数,无需明确提及+

现在你遇到问题..你已经完成了所有事情,但是因为你需要看到+标志,然后将其添加如下

shared numbervar gap;
Shared Numbervar display;

gap := {goal} - {actual};

if (gap < 0) 
then display := "+"&ToText(gap * -1)
else display := gap;
display

答案 1 :(得分:0)

我能够使用以下公式完成此任务:

shared numbervar gap;

gap := {goal} - {actual};

If gap < 0 then

"+" + totext(gap * -1, 0, "")

Else if gap = 0 then
totext(gap, 0, "")
else

totext(gap, 0, "")