将参数传递给报表查看器

时间:2012-08-29 11:27:36

标签: asp.net reporting-services reportviewer

我想将参数传递给我的报告视图。我有一个下拉列表,其中包含数据库中的值和一个用于在从下拉列表中选择项目后显示报告的按钮。

这是我为添加参数

而编写的代码
protected void Button1_Click(object sender, EventArgs e)
{
    RenderReport();
}

protected void RenderReport()
{
    try
    {
        ServerReport serverReport = ReportViewer1.ServerReport;
        ReportViewer1.ProcessingMode = ProcessingMode.Remote;
        try
        {
            serverReport.ReportServerUrl = new Uri("http://hedinaily-pc/Reports_HEDI");
        }
        catch (Exception ex)
        {
            Logger.Error(ex.Message, "");
        }
        serverReport.ReportPath = "~/Diagrammes/PresenceTotale.rdlc";
        ReportParameter employe = new ReportParameter();
        employe.Name = "Employe";
        employe.Values.Add(DropDownList1.SelectedValue);
        ReportViewer1.ServerReport.SetParameters( new ReportParameter[] { employe });
        ReportViewer1.Visible = true;               
    }

    catch (Exception ex)
    {
        Logger.Error(ex.Message, "");

    }

}

以下是我的报告的数据集

enter image description here

当我检查我的日志文件时,我发现了这个错误:

The attempt to connect to the report server failed.  Check your connection information and that the report server is a compatible version.

任何人都可以告诉我这个错误来自哪里。我花了几个小时在谷歌上搜索我发现了LINK,但我无法解决它。

4 个答案:

答案 0 :(得分:3)

尝试这样......

ReportViewer1.ServerReport.ReportPath = "FooReport.rdlc";
ReportParameter[] reportParameter = new ReportParameter[2];
reportParameter[0] = new ReportParameter("fooFromDate", dateFrom.ToShortDateString());
reportParameter[1] = new ReportParameter("fooDateTo", dateTo.ToShortDateString());
ReportViewer1.ServerReport.SetParameters(reportParameter);
ReportViewer1.ServerReport.Refresh();

还必须调用.Refresh()方法,以便显示...报告..

答案 1 :(得分:0)

您可以使用此代码进行测试

    ReportParameter[] yourParams = new ReportParameter[1];
    yourParams [0] = new ReportParameter("Employe", DropDownList1.SelectedValue);//Adjust value

    this.ReportViewer1.ServerReport.SetParameters(yourParams  );

答案 2 :(得分:0)

执行相同操作的一种方法是使用“报告参数”对话框为在本地模式下处理的报告定义参数。您可以定义参数以支持条件格式或在表达式或代码中使用。您无法使用“报表参数”对话框将报表参数映射到查询参数或在数据源过滤器中使用它们。

因此,您可以通过使用sqlParameters将参数传递给SP,因为我们可以在正常操作中执行此操作。然后执行SP将其绑定到报表查看器数据源。

答案 3 :(得分:0)

对于“尝试连接到报表服务器失败。请检查您的连接信息以及报表服务器是兼容版本。”错误尝试:

serverReport.ReportPath = "/Diagrammes/PresenceTotale";

而不是:

serverReport.ReportPath = "~/Diagrammes/PresenceTotale.rdlc";