报告查看器参数未以编程方式设置

时间:2014-01-27 12:06:18

标签: asp.net reporting-services reportviewer

您好, 我试图在ASPX页面中使用Report Viewer Control来加载我的一些SSRS报告。

到目前为止,我遇到了设置数据源和参数值的问题。

除了必须由用户填写的参数外,我还需要设置报告的数据源凭据以及报告的内部/隐藏参数。

这是我在Page_Load方法中使用的代码:

 DataSourceCredentials dsCredentials = new DataSourceCredentials()
        {
            Name = dsProps.Name,
            UserId = dsProps.Username,
            Password = dsProps.Password
        };

        // Configure properties of report viewer
        ReportViewer1.ProcessingMode = ProcessingMode.Remote;
        ReportViewer1.ServerReport.ReportServerUrl = new Uri(rsProps.ReportServerURL);
        ReportViewer1.ServerReport.ReportPath = rsProps.ReportPath;


        // Assign given parameters
        ReportParameter[] reportParams = new ReportParameter[parameters.Count];
        for (int i = 0; i < parameters.Count; i++)
            reportParams[i] = new ReportParameter(parameters.ElementAt(i).Key, parameters.ElementAt(i).Value);
        if (reportParams.Length > 0)
            ReportViewer1.ServerReport.SetParameters(reportParams);
         ReportViewer1.ServerReport.SetDataSourceCredentials(new DataSourceCredentials[] { dsCredentials });

到目前为止,查看器在加载时仍会提示用户输入数据源凭据,并发出内部/隐藏参数缺少值的错误,就像我的代码设置无效一样。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

我相信我已经解决了这个问题。

我冒充了这个代码的特定Windows用户,当我有模拟代码时,我设置了参数和数据源,它失败了,没有取值。

我在提到的代码之前移动了模仿,至少到目前为止它都有效。

答案 1 :(得分:0)

我发现在设置参数(SetParameter)之前,我必须设置ReportServerCredentials。那是2小时我永远不会回来。