Работа в ASP.NEТ MVC
Использование FastReport в MVC разметке ASPX ничем не отличается от обычной работы с ASP.NET. Пример применения WebReport в разметке aspx можно посмотреть в папке \Demos\C#\MvcDemo.
На использовании WebReport в разметке Razor, которая появилась с версии MVC 3, нужно остановиться подробнее. Для корректной работы WebReport нужно добавить в файл web.config
в корневой папке веб-приложения определения обработчиков. При использовании сервера IIS7 и выше нужно добавить следующую строку в секцию <system.webServer> <handlers>
:
<add name="FastReportHandler" path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport" />
При использовании IIS6 добавляется строка в секцию <system.web> <httpHandlers>
:
<add path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport" />
Далее нужно внести изменения в файл web.config
в папке, где находятся View. В секцию <system.web.webPages.razor> <namespaces>
нужно добавить строки:
<add namespace="FastReport" />
<add namespace="FastReport.Web" />
Эти строки необходимы, чтобы можно было создавать объекты FastReport и обращаться к их свойствам непосредственно во View.
В файле _Layout.cshtml
в теге <head>
добавляем строки:
@WebReportGlobals.Scripts()
@WebReportGlobals.Styles()
Теперь можно переходить к отображению отчета на View. Переходим в соответствующий контроллер и создаем там WebReport:
WebReport webReport = new WebReport(); // создаем объект
webReport.Width = 600; // задаем ширину
webReport.Height = 800; // задаем высоту
webReport.Report.RegisterData(dataSet, "AppData"); // привязка источника данных
webReport.ReportFile = this.Server.MapPath("~/App_Data/report.frx"); // загрузка отчета из файла
ViewBag.WebReport = webReport; // передаем данные во View
В коде View добавляем строку в нужное место:
@ViewBag.WebReport.GetHtml()
Аналогичный код по созданию WebReport можно написать также непосредственно во View.
Пример использования WebReport в разметке Razor находится в папке \Demos\C#\MvcRazor. Там есть различные варианты загрузки отчета, в том числе и заранее подготовленного, а также есть пример использования события StartReport
.
Не забудьте добавить в папку bin каждого из примеров недостающие библиотеки.