2011-12-06 69 views
0

我在“自定义代码”下面的代码在SSRS 2008年它工作正常,在VS2008,但它不会在服务器上运行:自定义代码在Reporting Services 2008年使电池展#错误

Public Shared Function Ns(ByVal num as Object, ByVal def as Object) as Object 
    if IsNothing(num) OrElse Not IsNumeric(num) OrElse System.Double.IsNaN(num) then 
     return def 
    else 
     return num 
    end if 
End Function 

我在SSRS 2008中的字段中将它引用为“Code.Ns(...,...)”。在VS2008的渲染器中,它看起来好像执行得很好。当我尝试使用自定义.NET应用程序以编程方式呈现该报表时,报表呈现除了自定义代码部分外的所有字段,如下所示:#Error。我究竟做错了什么?

回答

0

Reporting Services 2008(NOT R2)根据从数据库中读取的内容返回不同的类型。 (请参阅Here以获得很好的解释)。如果你像上面那样返回一个Sub对象,那么SSRS 2008中的SUM()函数就会混乱起来,因为你可能会求和不同的类型。这就是我所做的一切在我的细胞之一,在SSRS:

Sum(Ns(<some database field>, 0) 

虽然这在SSRS 2008 R2的工作(在我的测试机),它不工作于2008年SSRS没有R2(我的生产机器)。

相关问题