logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • О нас
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Использование online дизайнера отчетов в FastReport .NET
  • Как использовать Online Designer в ASP .NET Core

    17 января 2018 г.

    Одной из новинок FastReport .NET 2018 стала адаптация OnlineDesigner под фреймворк .NET Core. В целом, онлайн

    Подробнее
  • Как использовать объект WebReport в приложениях ASP .NET Core

    17 января 2018 г.

    Не так давно FastReport порадовал нас новой библиотекой - FastReport Core. Это специальная версия FastReport

    Подробнее
  • Семейство генераторов отчетов FastReport - быстрый обзор

    23 марта 2020 г.

    Отчетность – без нее невозможно вести деятельность ни в одной сфере жизнедеятельности. Бюрократия является неодолимой

    Подробнее
  • Как сделать простой Web-отчет FastReport .NET

    4 октября 2016 г.

    Сегодня Web-отчеты очень востребованы. Каждый день мы пользуемся интернетом и просматриваем десятки, а то и

    Подробнее
  • Как передать параметр в отчет с помощью URL

    23 августа 2017 г.

    Работая с отчетами в сети Интернет, обязательно появляется потребность передавать значения каких-либо параметров. Это, например,

    Подробнее

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

3 марта 2015 г.

В FastReport .NET 2015.1 появилась возможность использования on-line дизайнера отчетов. Данный дизайнер может быть загружен непосредственно в браузере пользователя и позволяет отредактировать внешний вид шаблона отчета, изменить свойства объектов, а также, при соответствующих настройках, отредактировать события объектов и скрипт отчета.

Полнофункциональная версия on-line дизайнера доступна в редакции Professional. Пробную версию можно получить в редакции Trial, которая доступна на сайте для свободного скачивания. Ознакомительная версия отличается заблокированной функцией сохранения отредактированных отчетов.

На данный момент on-line дизайнер отчетов работает в связке с объектом WebReport. Использование дизайнера также возможно в ASP.NET MVC. On-line дизайнер позволяет редактировать внешний вид отчетов, изменять свойства объектов, добавлять новые объекты. Существует возможность  изменить скрипт отчета и обработчики событий отчета, но в целях безопасности, по умолчанию, данная опция отключена – её можно включить в свойствах объекта WebReport. При отключенной опции редактирования содержимое скрипта при сохранении игнорируется и заменяется исходным значением. Также, в целях безопасности, в on-line дизайнер не попадают строки подключения встроенных в отчет источников данных – полученные при сохранении значения также игнорируются и заменяются теми, что были в изначальном отчете.

Дизайнер отчетов находится в разработке. Некоторые типы объектов пока не поддерживаются. Также, нет возможности редактирования диалоговых форм отчета. Следует отметить, что все неподдерживаемые дизайнером объекты или свойства сохраняют свои первоначальные значения и не меняются.

 

Принцип работы on-line дизайнера отчетов:

On-line Report Designer Scheme

После загрузки объекта WebReport на ASP.NET странице выполняется AJAX запрос к handler FastReport для получения содержимого контейнера – в данном случае кода вызова on-line дизайнера в контексте iframe. Код дизайнера отчетов размещается в отдельной папке на сайте приложения. После загрузки дизайнера  в браузер пользователя выполняется очередной AJAX запрос к handler из кода дизайнера на получение нужного отчета (getReportByUUIDFrom). На серверной стороне производится подготовка отчета для редактирования и отправка его дизайнеру. В дальнейшем дизайнер может запросить предварительный просмотр отчета. В этом случае текущий отчет отправляется на сервер (makePreviewByUUID), отчет выполняется и результат отправляется обратно в on-line дизайнер, который отображает полученный html в окне предварительного просмотра. Из предварительного просмотра доступна печать отчета, а также экспорт в различные форматы. При завершении редактирования отчета в дизайнере может быть подана команда на сохранение отчета на сервере. В этом случае выполняется AJAX запрос к handler (saveReportByUUIDTo) с содержимым отчета. Сервер производит обработку полученного отчета, сохраняет его во временную папку и выполняет вызов call-back страницы приложения (соответствующие параметры устанавливаются в свойствах WebReport). Важно помнить, что объект WebReport существует в кэше сервера ограниченное время, после чего удаляется из памяти. Время существования объекта WebReport в минутах определяется свойством CacheDelay и по умолчанию равно 60.


Пошаговое руководство по настройке on-line дизайнера отчетов:

1. Для начала работы с on-line дизайнером нужно скопировать папку WebReportDesigner в расположение вашего web-приложения.

 

2. Файл web.config должен содержать настройки handler для корректной работы объекта WebReport:

Для IIS6:

<system.web>
…
<httpHandlers>
<add path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport"/>
</httpHandlers>
</system.web>
 


Для IIS7:

 <system.webServer>
<handlers>
<add name="FastReportHandler" path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport"/>
</handlers>
</system.webServer>
 

 

3. Далее, необходимо проверить настройки дизайнера отчетов в файле WebReportDesigner/*.config-data.js:
'getReportByUUIDFrom': '/FastReport.Export.axd?getReport=',
'saveReportByUUIDTo': '/FastReport.Export.axd?putReport=',
'makePreviewByUUID': '/FastReport.Export.axd?makePreview=',
Данные параметры должны содержать путь к handler FastReport относительно корня web сайта. Если ваш путь отличается от написанного, то его нужно скорректировать, например:
'getReportByUUIDFrom': '/oursite/FastReport.Export.axd?getReport=',

 

4. При использовании WebReport в разметке ASPX, кладем на страницу объект и устанавливаем свойства. При использовании в MVC пишем соответствующий код в контроллере:

4.1.    Включаем режим редактирования отчетов:
webReport.DesignReport = true;

4.2.    Устанавливаем уникальное имя объекту WebReport, необходимое для дальнейшей идентификации в call-back странице при сохранении отредактированного отчета:
webReport.ID = "MyDesignReport1";

4.3.    Устанавливаем запрет редактирования скрипта отчета в on-line дизайнере, или, если нужно разрешить редактирование - присваиваем true:
webReport.DesignScriptCode = false;

4.4.    Указываем путь к главному файлу дизайнера отчетов, папка с дизайнером должна быть скопирована в соответствующее место web-приложения:
webReport.DesignerPath = "~/WebReportDesigner/index.html";

4.5.    Указываем путь к call-back странице на сайте, вызов которой будет выполнен после сохранения отчета во временную папку, для MVC путь к View:
webReport.DesignerSaveCallBack = "~/Home/SaveDesignedReport";
или, например, для ASPX:
webReport.DesignerSaveCallBack = "~/DesignerCallBack.aspx";
При вызове call-back страницы передаются следующие параметры в GET запросе: reportID="here is webReport.ID"&reportUUID="here is saved report file name". В данном контексте reportID соответствует ID объекта WebReport, а reportUUID соответствует имени файла, который сохранен во временную папку. Разработчик должен выполнить дальнейшие действия по сохранению отчета в исходный файл на диске, базу данных либо в облачное хранилище. Временный файл с именем reportUUID необходимо удалить из временной папки после сохранения. Пример кода call-back страницы будет показан в пункте 5.

4.6.    Указываем путь к временной папке, куда будут сохраняться отредактированные отчеты перед вызовом call-back, у папки должны быть установлены права на запись:
webReport.DesignerSavePath = "~/App_Data/DesignedReports";

4.7.    Устанавливаем время жизни объекта WebReport на сервере в минутах, по умолчанию время равно 60:
webReport.CacheDelay = 120;

 

5. Создаем call-back страницу для обработки запросов сохранения отчетов.

5.1.  Если используется разметка ASPX, то в обработчике события Page_Load нужно добавить следующий код:

protected void Page_Load(object sender, EventArgs e)
{
string reportID = Request.QueryString["reportID"];
string reportUUID = Request.QueryString["reportUUID"];
// 1. Значение reportID идентифицирует объект, который вызывал дизайнер. Значение соответствует свойству webReport.ID, которое заполнялось при вызове дизайнера.
// 2. Объединяя путь, который мы заполнили в свойстве webReport.DesignerSavePath при вызове дизайнера, и полученный reportUUID, мы получаем путь к сохраненному временному файлу.
// 3. Данный файл можно открыть и сохранить в нужное нам место на диске, облаке или в базе данных.
// 4. Временный файл нужно удалить после сохранения.
}

5.2. Соответственно в разметке MVC создаем метод в контроллере и пустой View. Код в контроллере:

public ActionResult SaveDesignedReport(string reportID, string reportUUID)
{
// 1. Значение reportID идентифицирует объект, который вызывал дизайнер. Значение соответствует свойству webReport.ID, которое заполнялось при вызове дизайнера.
// 2. Объединяя путь, который мы заполнили в свойстве webReport.DesignerSavePath при вызове дизайнера, и полученный reportUUID, мы получаем путь к сохраненному временному файлу.
// 3. Данный файл можно открыть и сохранить в нужное нам место на диске, облаке или в базе данных.
// 4. Временный файл нужно удалить после сохранения.
return View();
}

 
Особое внимание при создании обработчиков Call-back страниц для сохранения отчетов нужно обратить на фильтрацию и проверку получаемых в Get запросе параметров, в частности выполнить их проверку на null.

На странице объект с дизайнером целесообразно разместить в нижней части страницы. Рекомендуемая ширина 100% или в пикселях не менее 930px. Высоту объекта также рекомендуется установить не менее 600px.

On-line Report Designer

На данный момент в on-line дизайнере отсутствует возможность редактирования источников данных, поэтому необходимо в коде приложения создать нужный источник и зарегистрировать его перед вызовом дизайнера либо в коде контроллера для MVC после загрузки шаблона в объект отчета, либо в обработчике события StartReport. Регистрация источника данных выполняется командой WebReport.Report. RegisterData(DataSet, “DataSetName”). Подробнее о регистрации источников данных можно почитать в руководстве программиста.

Если стоит задача создать новый отчет в дизайнере, то нужно также позаботиться о предварительной регистрации источника данных в объекте отчета. Также вы можете загрузить какой-либо шаблон отчета из файла с ранее заданными элементами оформления.

В дополнение к вышенаписанному можно посмотреть пример использования дизайнера в одном из наших демонстрационных проектов, которые идут совместно с FastReport.NET  \Demos\C#\MvcRazor, также, можно просмотреть пример работы дизайнера в он-лайне https://www.fast-report.com:2015/razor/Home/Designer

 

Готовы ответить на ваши вопросы, пишите нам на support@fast-report.com!

О продукте Купить
avatar
Aleksandr Fediashov
Ведущий программист
Fast Reports Team: Aleksandr Fediashov - Team Lead at Fast Reports
.NET FastReport ASP.NET Online Designer

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • FAQ
  • Видео уроки
  • Форум
  • Условия оказания поддержки
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • Нестандартное лицензирование
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2023 ООО «Быстрые отчеты»

  • Согласие с обработкой персональных данных
  • Политика в отношении обработки персональных данных
  • Не является публичной офертой