【问题标题】:Is it possible to integrate SSRS reports with webforms是否可以将 SSRS 报告与网络表单集成
【发布时间】:2008-09-19 00:18:07
【问题描述】:

是否可以将 SSRS 报告集成到网络表单中。一个示例足以让我继续前进。

【问题讨论】:

    标签: reporting


    【解决方案1】:

    确实如此。

    您正在寻找的是 ReportViewer 控件,它位于 Microsoft.Reporting.WebForms 程序集中。它将允许您在 Web 表单上放置一个控件,从而为人们提供一个用于设置报告参数和获取报告的界面。

    或者,您可以自己设置所有参数并以您需要的任何格式输出报告。我们在应用程序中使用它来输出 PDF。

    例如 - 这就是我们如何为我们的一份报告设置一个 reportviewer 对象并获取 PDF,然后将其发送回用户。特定的代码块是一个 Web 处理程序。

    public void ProcessRequest(HttpContext context)
    {
        string report = null;
        int managerId = -1;
        int planId = -1;
        GetParametersFromSession(context.Session, out report, out managerId, out planId);
        if (report == null || managerId == -1 || planId == -1)
        {
            return;
        }
    
        CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
    
        List<ReportParameter> parameters = new List<ReportParameter>();
        parameters.Add(new ReportParameter("Prefix", report));
        parameters.Add(new ReportParameter("ManagerId", managerId.ToString()));
        parameters.Add(new ReportParameter("ActionPlanId", planId.ToString()));
        string language = Thread.CurrentThread.CurrentCulture.Name;
        language = String.Format("{0}_{1}", language.Substring(0, 2), language.Substring(3, 2).ToLower());
        parameters.Add(new ReportParameter("Lang", language));
    
        ReportViewer rv = new ReportViewer();
        rv.ProcessingMode = ProcessingMode.Remote;
        rv.ServerReport.ReportServerUrl = new Uri(ConfigurationManager.AppSettings["ReportServer"]);
        if (ConfigurationManager.AppSettings["DbYear"] == "2007")
        {
            rv.ServerReport.ReportPath = "/ActionPlanning/Plan";
        }
        else
        {
            rv.ServerReport.ReportPath = String.Format("/ActionPlanning{0}/Plan", ConfigurationManager.AppSettings["DbYear"]);
        }
        rv.ServerReport.SetParameters(parameters);
    
        string mimeType = null;
        string encoding = null;
        string extension = null;
        string[] streamIds = null;
        Warning[] warnings = null;
        byte[] output = rv.ServerReport.Render("pdf", null, out mimeType, out encoding, out extension, out streamIds, out warnings);
    
        context.Response.ContentType = mimeType;
        context.Response.BinaryWrite(output);
    }
    

    【讨论】:

      【解决方案2】:

      这是一篇知识库文章,描述了如何以特定文件格式将报表输出呈现到 aspx 页面。

      http://support.microsoft.com/kb/875447/en-us

      【讨论】:

        【解决方案3】:

        请注意,当您不使用 URL 访问方法时,您将失去一些功能,例如参数选择。

        报表服务器 URL 访问支持 HTML 查看器和报表工具栏的扩展功能。 SOAP API 不支持这种类型的呈现报告。如果您使用 SOAP 呈现报表,则需要设计和开发自己的报表工具栏。

        http://msdn.microsoft.com/en-us/library/ms155089.aspx

        【讨论】:

          猜你喜欢
          • 2018-10-18
          • 1970-01-01
          • 1970-01-01
          • 2013-02-13
          • 1970-01-01
          • 1970-01-01
          • 2023-04-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多