Сегодня я расскажу о новой библиотеке FastReport.Service.dll, которая появилась в FastReport.Net 2013.3. Данная библиотека представляет собой 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 |
Описание |
|
Файл 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.Service.dll можно посмотреть в папках \Demos\C#\WCFWebService , \Demos\C#\WCFWindowsService , \Demos\C#\WCFWebClient , \Demos\C#\WCFClient. Пример файла конфигурации сервиса - FastReport.Service.dll.config.
В следующей статье я расскажу подробнее о конкретных примерах использования FastReport.Service.dll.
Продолжение следует.