SSRS 2008报表动态标头在BIDS中的本地计算机上运行,​​但不在报表服务器

时间:2015-10-02 20:58:38

标签: sql-server vb.net reporting-services

我有一个报告,其中包含一个列列表,其中一行已分组。行内有三个子报告。报告的标题应该显示对该行分组的数据唯一的三条信息,因此每个标题都是唯一的。

我试图通过在主体中隐藏控件来填充标题中的数据,然后我在标题中的控件的表达式中引用它们。这种方法不起作用。所以我切换到了一个不同的可能解决方案,我找到了使用VB填充变量并使用表达式中的=Code.variableName在标题中引用它们。填充变量的函数从正文中的隐藏控件调用,该控件将数据作为参数传递。

此方法有效。但是,它似乎只能在我的本地机器和BIDS预览中的一个同事的机器上工作。当报表发布到报表服务器时,它会运行,一切看起来都很好,除了标题值不会填充。

其中一个变量是整数,另外两个是字符串。整数值初始化为0,并且在报表服务器的报表中,它显示初始化值0,但字符串仍为空白。这让我觉得函数没有被调用或者可能存在范围问题?或者它可能是我不熟悉的完全不同的东西。可能是报表服务器的配置问题?

以下是报告: Screenshot of the report designer

如果你能看到左侧报告中途的微小控制。它只是一个小小的盒子..该控件的表达式是:

=Code.GetHeaderData(Fields!SEPID.Value, Fields!FullName.Value, Fields!Level.Value)

功能是:

    Shared Public Dim SEPIDVar as Integer
    Shared Public Dim FullNameVar as String
    Shared Public Dim LevelVar as String

Public Shared Function GetStudentHeaderData(
    ByVal sepid as Integer, 
    ByVal fullname as String, 
    ByVal level as String)
        SEPIDVar = sepid
        FullNameVar = fullname
        LevelVar = level
End Function

三个标题控件具有以下表达式:

=Code.FullNameVar
=Code.SEPIDVar
=Code.LevelVar

接下来是一些屏幕截图,显示了当我从BIDS本地预览报告与在sql报告服务器上运行报告时报告的不同之处:

在本地计算机上的BIDS 2008中查看预览时的工作标题: (价值扭曲) enter image description here

从报表服务器查看报表时损坏的标题: enter image description here

我花了好几天时间来鞭打互联网寻求解决方案无济于事。任何帮助解决为什么会发生这种情况将非常感谢!

1 个答案:

答案 0 :(得分:1)

在创建标头之前,报表服务器似乎没有运行您的代码。显然,它似乎在BIDS中有效。

您可以将标题向下移动以成为报告的一部分,以便只使用字段吗?

如果没有,您是否尝试使用 ReportItems ?有关详细信息,请参阅此TechNeT