当前位置:  开发笔记 > 编程语言 > 正文

是否可以将SSRS报告与网络表单集成

如何解决《是否可以将SSRS报告与网络表单集成》经验,为你挑选了1个好方法。

是否可以将SSRS报告集成到webforms中......一个例子就足以让我继续前进.



1> John Christe..:

绝对是.

您正在寻找的是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 parameters = new List();
    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);
}

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有