【问题标题】:passing parameter to report viewer将参数传递给报表查看器
【发布时间】:2012-08-29 11:27:35
【问题描述】:

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

这是我为添加参数编写的代码

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, "");

    }

}

这是我报告的数据集

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

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

谁能告诉我这个错误来自哪里。我花了几个小时在谷歌上搜索我找到了这个LINK,但我无法解决它。

【问题讨论】:

    标签: asp.net reporting-services reportviewer


    【解决方案1】:

    这样试试吧……

    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() 方法,以便显示...报告..

    【讨论】:

    • 我在报表查看器中有下拉列表,所以如何将 t 参数发送到 ddl
    • @TanmayNehete 而不是 'dateFrom.ToShortDateString()' 您可以使用下拉控件名称及其“值”或“文本”
    • 你能详细说明一下吗
    【解决方案2】:

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

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

    【讨论】:

    • 现在我收到了这个错误An error occurred during local report processing
    • 用ServerReport修改,很正常,是后期制作的
    • 不幸的是,这不起作用。我又得到了之前的错误The attempt to connect to the report server failed. Check your connection information and that the report server is a compatible version.
    【解决方案3】:

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

    所以你可以像我们在正常操作中那样通过使用 sqlParameters 将参数传递给 SP。然后执行 SP 将其绑定到报表查看器数据源。

    【讨论】:

      【解决方案4】:

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

      serverReport.ReportPath = "/Diagrammes/PresenceTotale";

      代替:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-20
        • 1970-01-01
        • 2013-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多