FastReport .NET 2013.2 MVC

11.03.2013

В связи с выпуском новой версии генератора отчетов FastReport .NET 2013.2 прошу обратить внимание  всех пользователей объекта WebReport на следующие изменения.

Во-первых, изменилось расширение у имени хендлера, который необходимо прописывать в файле web.config для корректной работы WebReport. Старое название «FastReport.Export.aspx» нужно заменить на новое «FastReport.Export.axd». Если этого не сделать, то WebReport вызовет исключение с ошибкой и инструкциями по внесению изменений в файл web.config.

Проверить корректную работу хендлера WebReport можно набрав в адресной строке браузера: http://site_address/app_folder/ FastReport.Export.axd (замените строки site_address и app_folder на свои).

В случае удачного запроса будет выведен номер версии FastReport и текущее серверное время.

Во-вторых, в FastReport .Net 2013.2 добавлена поддержка фреймворка ASP.NET MVC всех версий. С использованием контрола в разметке ASPX (MVC 2) не должно возникнуть никаких сложностей – объект достаточно перетащить на форму из Toolbox, установить свойства и работать с ним как с привычным контролом. Необходимые настройки в файл web.config будут добавлены автоматически. Пример применения 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 каждого из примеров недостающие библиотеки.

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.