2

试图格式化数字(十进制),但它#Error在生产服务器上显示:

=FormatNumber(First(Fields!SumWithMailDelivery.Value, "document"), 0)

但在开发人员服务器上它工作正常。也许有人知道,我该如何解决这个问题?

ps 没有格式化它也可以在生产服务器上正常工作。

4

1 回答 1

3

正如@IanPreston 所说,这很可能是类型转换错误。我想您的生产数据对该列或某些Null列有一些无效字符导致数字转换失败。

您可以使用该Val功能进行转换。Val与其他数字转换函数的不同之处在于,当要转换的字符串不是数字时,它不会出错 - 它只是尽其所能。

因此,请为该Value属性尝试这样的表达式:

=IIF(Fields!SumWithMailDelivery.Value Is Nothing, 
  Nothing, 
  IIF(IsNumeric(Fields!SumWithMailDelivery.Value), 
    Val(Fields!SumWithMailDelivery.Value), 
    Fields!SumWithMailDelivery.Value)
)

如果可能,然后N0用作Format属性将其格式化为数字。

这个公式将:

  • 将单元格保留为Nothing字段Null
  • 如果可能,转换为数字并使用适当的格式
  • 否则只需输出该字段中的任何内容
于 2013-10-31T06:44:03.897 回答