Reporting services SSRS格式编号错误

Reporting services SSRS格式编号错误,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,正在尝试格式化数字(十进制),但在生产服务器上显示错误: =FormatNumber(First(Fields!SumWithMailDelivery.Value, "document"), 0) 但在开发人员服务器上,它运行良好。 也许有人知道,我怎样才能解决这个问题 p、 如果没有格式化,它在生产服务器上也可以正常工作。正如@IanPreston所说,这很可能是类型转换错误。我猜想您的生产数据中有一些无效字符用于该列,或者有一些Null列导致数值转换失败 您可以使用Val功能进行转换Val

正在尝试格式化数字(十进制),但在生产服务器上显示错误:

=FormatNumber(First(Fields!SumWithMailDelivery.Value, "document"), 0)
但在开发人员服务器上,它运行良好。 也许有人知道,我怎样才能解决这个问题


p、 如果没有格式化,它在生产服务器上也可以正常工作。

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

您可以使用
Val
功能进行转换
Val
与其他数字转换函数的不同之处在于,当要转换的字符串不是数字时,它不会出错—它只是尽了最大努力

对于
属性,请尝试这样的表达式:

=IIF(Fields!SumWithMailDelivery.Value Is Nothing, 
  Nothing, 
  IIF(IsNumeric(Fields!SumWithMailDelivery.Value), 
    Val(Fields!SumWithMailDelivery.Value), 
    Fields!SumWithMailDelivery.Value)
)
然后尽可能使用
N0
作为
Format
属性将其格式化为数字

这一公式将:

  • 如果字段为
    Null
  • 如果可能,转换为数字并使用适当的格式
  • 否则,只需输出字段中的任何内容

关于
=格式(第一个(字段!SumWithMailDelivery.Value,“文档”),“N0”)
?或者只是在文本框
Format
属性中应用
N0
,而不尝试使用表达式应用格式?如果可以接受的话,我会尝试从表达式中删除格式并首先设置textbox属性。@IanPreston:如果我设置自定义格式
N0
,我会得到
1434450.000
,因此它不起作用。如果我使用表达式-我得到
N0
。。。奇怪的是…错误的原因是SSRS由于某种原因没有将字段识别为数字类型。。。因此,可以尝试这样的方法:
=FormatNumber(CDec(First(Fields!SumWithMailDelivery.Value,“document”)),0)
,这应该可以解决问题,或者证明SSRS由于某种原因无法进行数字转换。至于为什么它不能转换,很难说没有访问您的数据。@IanPreston:我以前试过-
#Error
…可能服务器之间的本地化不同,所以预期的数字格式不同?另一个需要考虑的问题是,如果当前正在为该字段返回字符串,则在数据库级别应用显式强制转换为“代码>十进制< /代码>。