0

首先,如果以前有人问过这个问题,我想道歉,我只是找不到答案。直截了当:我的问题如下:我正在为 VS2010 使用 Crystal Reports,并且我有一个字段应该根据 If 检查显示 1 或 -1

If IsNull ({Orders.OrderReplacedBy})
Then 1
Else -1

它应该在我的报告 1 中显示该字段的空值,否则显示 -1。问题是,在我的报告中,无论 if 测试的值如何,我都只得到 .00。此外,我还有另一个公式字段,它是报告上显示的所有 1 和 -1 的总和,它似乎有点奇怪。在我的数据库中,我总共有 772 行,其中 39 为 NULL(因此应该有 733 个 1 和 39 个 -1,总和为 694),显示的总和为 488。总和的代码如下:

Sum({@N})

其中 N 是我计算 1 和 -1 的字段。

到目前为止我已经尝试过:

  • 将 If 测试从 IsNull 更改为ToText({Orders.OrderReplacedBy})=""
  • 将 If 测试更改{Orders.OrderReplacedBy}>0为,因为数据库中的 OrderReplacedBy 字段是数字并且不能有小于零的值,因此 NULL 应该只触发 Else。
  • 尝试将公式的显示更改为"1"ToNumber("1")但似乎没有任何效果

老实说,我不知道还有什么可以尝试的,而且我对 Crystal Reports 也一无所知(我只使用了 2 天,只需要修改现有应用程序的报告)。

任何帮助,将不胜感激,

谢谢 :)

PS:我正在使用 Silverlight 4

4

1 回答 1

0

由于没有人回答,我认为这没有发生在任何人身上,或者没有太大的兴趣。但是在做了更多的研究并尝试了其他东西之后,我发现了一个我会发布的解决方法(也许其他人会碰到这个,谁知道?):在 N 公式中(我不知道为什么它没有我最后一次尝试工作)我改变了这样的事情:

If IsNull({Orders.OrderReplacedBy})
Then "1"
Else "-1"

添加了一个未在报告中使用的新公式,称为 Numbers

If {@N}="1"
Then 1
Else -1

然后我更改了求和公式以匹配中间字段

Sum({@Numbers})

我仍然不知道为什么报告不想向我显示 N 公式中的数字,也不知道为什么 sum 公式没有计算出正确的总和。

我希望这至少对其他人有用,

干杯!

于 2013-03-27T13:01:38.607 回答