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.

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

.NET WCF FastReport .NET WCF FastReport
10 июля 2026

Как настроить Content Security Policy для отчетов FastReport .NET WEB

Узнайте, как настроить Content Security Policy для отчётов FastReport .NET WEB: обзор директив и значений CSP, изменения в архитектуре FastReport, типичные сценарии обхода и способы защиты.
22 июня 2026

Как настроить отчет с Business Objects из кода и дизайнера в FastReport .NET

В этой статье рассматривается реальный пример создания и использования шаблона отчета .frx для подключения к иерархическим бизнес-объектам в FastReport .NET.
21 апреля 2026

Использование водяных знаков в FastReport VCL

В статье подробно рассмотрели функционал добавления водяных знаков в FastReport VCL — как через визуальный интерфейс, так и программно, с помощью кода на Delphi и в скриптах отчётов.

Не является публичной офертой
© 1998-2026 ООО «Быстрые отчеты»