Можно ли интегрировать отчеты SSRS с веб-формами? - PullRequest
3 голосов
/ 19 сентября 2008

Можно ли интегрировать отчеты SSRS в веб-формы ... одного примера будет достаточно, чтобы я продолжал двигаться.

Ответы [ 3 ]

7 голосов
/ 19 сентября 2008

Абсолютно это так.

Требуется элемент управления ReportViewer, расположенный в сборке Microsoft.Reporting.WebForms. Это позволит вам разместить элемент управления прямо в веб-форме, который предоставит пользователям интерфейс для настройки параметров отчета и получения отчета.

В качестве альтернативы вы можете установить все параметры самостоятельно и вывести отчет в любом формате, который вам нужен. Мы используем его в нашем приложении для вывода PDF.

Например, так мы настраиваем объект Reportviewer для одного из наших отчетов и получаем PDF, а затем отправляем его обратно пользователю. Конкретный блок кода - это веб-обработчик.

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);
}
0 голосов
/ 19 сентября 2008

Имейте в виду, что некоторые функции, такие как выбор параметров, будут потеряны, если вы не используете метод доступа к URL.

Доступ к URL-адресу сервера отчетов поддерживает HTML Viewer и расширенные функциональные возможности панели инструментов отчетов. API-интерфейс SOAP не поддерживает этот тип отображаемого отчета. Вам необходимо спроектировать и разработать собственную панель инструментов отчетов, если вы создаете отчеты с использованием SOAP.

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

0 голосов
/ 19 сентября 2008

Это статья базы знаний, которая описывает, как визуализировать вывод отчета на страницу aspx в определенном формате файла.

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

...