0

我是报表服务器的新手,我面临两个问题。

我会给你一些信息,然后我会解释它们。

我创建了一个报表服务器项目,并在其中创建了一个共享数据源,它具有授予对 Sql Server 2005 数据库的访问权限的用户 ID 和密码。但我的报表服务器是在 Sql Server 2008 R2 上创建的。

创建共享数据源后,我创建了一个共享数据集,它使用共享数据源作为数据源。在这个DataSet上使用的命令类型是“Stored Procedure”,这个过程接收参数,所以,DataSet也接收这些参数。

然后,我创建了一个报告,我将数据集拖到这个报告中,它自动创建了参数报告。

让我们把问题分开...

第一个问题:通过URL访问报表时如何隐藏报表参数提示

当我通过右键单击 .rdl 文件并单击“运行”来运行报表时,不显示参数提示,但是当通过 URL 从外部(在报表服务器上部署后)访问报表时,显示参数提示。

我能做些什么来改变这种行为?我已经尝试将标签设置如下:

<Hidden>true</Hidden>

但它一直在做同样的事情。

以下是我的报告参数的代码片段。

<ReportParameters>
    <ReportParameter Name="IDFUNC">
        <DataType>Integer</DataType>
        <DefaultValue>
            <Values>
                <Value>
                    10
                </Value>
            </Values>
        </DefaultValue>
    </ReportParameter>
    <ReportParameter Name="dtInicial">
        <DataType>DateTime</DataType>
        <DefaultValue>
            <Values>
                <Value>
                    06/01/2012
                </Value>
            </Values>
        </DefaultValue>
    </ReportParameter>
    <ReportParameter Name="dtFinal">
        <DataType>DateTime</DataType>
        <DefaultValue>
            <Values>
                <Value>
                    09/01/2012
                </Value>
            </Values>
        </DefaultValue>
    </ReportParameter>
</ReportParameters>

我已经尝试在报告参数属性对话框中隐藏这些参数。但在这种情况下,我收到消息错误“<Prompt:> Enter a prompt for the parameter”。

为了清楚起见,我将通过 QueryString (URL) 传递我需要的参数。

第二个问题:报告在加载报告时要求提供数据库凭据(仅当通过 URL 访问时)

通过 URL 访问报表时如何使报表跳过数据库认证?

好吧,伙计们,这就是一切。如果您想了解更多信息来帮助我,请询问。

谢谢。

4

1 回答 1

2

您正在查看的是传播问题:Reporting Services 不会传播身份验证凭据,因此您需要使用浏览器打开服务器上的数据源并打开其属性并再次在其中输入凭据。这样做是出于安全原因,您只需更新服务器上的凭据一次。

同样,有时当参数更改时,它们也不会被传播(如果 Reporting Services 服务器认为您已从其部署的设置中修改了参数 - 它会为您保留修改后的值)。您可能需要再次使用浏览器更新服务器上的参数。为该报告选择管理参数并将它们设置为隐藏。删除和重新部署报告也可能有效。

于 2012-12-13T22:40:03.857 回答