FastReport WCF Service Library

10.06.2013

Сегодня я расскажу о новой библиотеке FastReport.Service.dll, которая появилась в FastReport.Net 2013.3. Данная библиотека представляет собой WCF Service Library и предназначена для использования в составе пользовательских приложений, выполняющих функции сервисов.

FastReport WCF Service Library

В данный момент библиотека содержит следующие функции:

 List<ReportItem> GetReportsList();
 List<ReportItem> GetReportsListByPath(string path);
 List<GearItem> GetGearList();
 Stream GetReport(ReportItem report, GearItem gear);

Остановимся подробнее на каждой.

List<ReportItem> GetReportsList() – возвращает список доступных отчетов в виде элементов ReportItem. Отчеты хранятся на жестком диске, на сервере, где работает сервис.  Передаются список всех отчетов с учетом иерархии папок. Файлы отсортированы по алфавиту.

List<ReportItem> GetReportsListByPath(string path) – возвращает список отчетов в виде элементов ReportItem из папки path. В список попадут все отчеты и подпапки.  Файлы отсортированы по алфавиту.

List<GearItem> GetGearList()  - возвращает список доступных форматов, которые может сформировать сервис отчетов в виде элементов GearItem.

 Stream GetReport(ReportItem report, GearItem gear) – возвращает поток данных, который является результатом построения отчета report в формате gear. Параметры report и gear могут быть использованы из списков, полученных ранее, либо созданы новые объекты с необходимыми свойствами.  Возвращаемый поток не поддерживает позиционирование -  вы можете осуществлять из него только последовательное чтение.

Подробнее об элементах списков.

 

ReportItem

 public class ReportItem
 {
 public string Path;
 public string Name;
 public string Description;
 public Dictionary<string, string> Parameters;
 }

Path – путь к файлу отчета на сервере, относительно корня папки хранения отчетов. Расширение файла отчета может быть только *.frx. Данное свойство используется для идентификации конкретного отчета при дальнейших запросах.

Name – имя отчета, берется из метаданных файла отчета. Если метаданные отчета содержат пустое название, то имя совпадает с именем файла отчета без расширения. Данное свойство может быть использовано для построения интерактивных списков доступных отчетов в вашем приложении (например, в ListBox).

Description – описание отчета, берется из метаданных файла отчета.

Dictionary<string, string> Parameters – словарь параметров отчета. Может быть заполен параметрами, которые будут впоследствии переданы в отчет. Поддерживаются только строковые значения, что необходимо учесть при разработке шаблона отчета.

 

GearItem

 public class GearItem
 {
 public string Name;
 public Dictionary<string, string> Properties;
 }

Name – название формата. Может содержать одно из следующих строковых значений:

Name

Описание

PDF

Файл Adobe Acrobat

DOCX

Файл Microsoft Word 2007

XLSX

Файл Microsoft Excel 2007

PPTX

Файл Microsoft PowerPoint 2007

RTF

Файл Rich Text – поддерживается множеством текстовых редакторов

ODS

Файл Open Office Spreadsheet

ODT

Файл Open Office Text

MHT

Сжатый HTML файл вместе с изображениями, может быть открыт в Internet Explorer

CSV

Comma separated values - текстовая таблица со значениями, разделенными запятыми.

DBF

Файл базы данных dBase

XML

XML таблица Excel – изображения не поддерживаются

TXT

Текстовый файл

FPX

Формат готового отчета FastReport.Net, может быть загружен в программу Viewer.exe либо непосредственно в объект отчета из кода Report.LoadPrepared(stream) и показан на экране Report.ShowPrepared()

Dictionary<string, string> Properties – словарь параметров формирования отчета. Полный список поддерживаемых параметров со значениями по умолчанию  доступен при запросе списка форматов от сервера.

 

При создании сервиса, использующего библиотеку FastReport.Service.dll нужно добавить настройки в файл App.config или Web.config вашего приложения.

 <appSettings>
 <add key="FastReport.ReportsPath" value="C:\Program files\FastReports\FastReport.Net\Demos\WCF" />
 <add key="FastReport.ConnectionStringName" value="FastReportDemo" />
 <add key="FastReport.Gear" value="PDF,DOCX,XLSX,PPTX,RTF,ODS,ODT,MHT,CSV,DBF,XML,TXT,FPX" />
 </appSettings>

FastReport.ReportsPath – указывает путь к папке с файлами отчетов, список которых будет передаваться клиенту.

FastReport.ConnectionStringName – имя строки подключения к базе данных, которое хранится в разделе <connectionStrings> файла конфигурации. Используется для замены внутренней строки подключения в шаблоне отчета.

FastReport.Gear – список доступных форматов. Можно выбрать только нужные и изменить порядок следования названий.

Схематичный вариант использования FastReport.Service:

 

FastReport WCF Service Library

 

Если вы точно знаете, какой отчет и в каком формате вы хотите получить, то схема использования сервиса может быть такой (это сократит количество запросов к сервису):

FastReport WCF Service Library

 

Важные моменты, которые необходимо учитывать при создании шаблонов отчетов для использования в сервисах:

  • диалоги в отчетах не поддерживаются и будут пропущены при построении отчета;
  • каждый отчет должен содержать внутренний DataConnection, строка подключения которого будет при построении отчета сервисом  заменена на строку из конфигурации.

Примеры использования FastReport.Service.dll можно посмотреть в папках \Demos\C#\WCFWebService , \Demos\C#\WCFWindowsService , \Demos\C#\WCFWebClient , \Demos\C#\WCFClient. Пример файла конфигурации сервиса - FastReport.Service.dll.config.

В следующей статье я расскажу подробнее о конкретных примерах использования FastReport.Service.dll.

Продолжение следует.

1 ноября 2024

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

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

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

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

Как настроить WSL 2 для работы с FastReport и FastCube

В этой статье попробуем вместе разобраться, как настроить WSL 2 для работы с компонентами FastReport и FastCube в Lazarus для Linux.