Шаг 20.
Вкладка QReport. Компоненты TQRTextFilter, TQRCSVFilter, TQRHTMLFilter

    На этом шаге мы рассмотрим компоненты TQRTextFilter, TQRCSVFilter, TQRHTMLFilter.

    В ряде случаев требуется преобразовать сгенерированный отчет в файл определенного формата, чтобы передать его в другую программу.

    Например, оптовый поставщик книг часто рассылает по электронной почте своим партнерам прайс-листы с перечнем имеющихся в наличии книг. Разумеется, если у партнера есть хотя бы простейшая программа с доступом к окну предварительного просмотра отчета, наилучшим способом экспорта является преобразование отчета в файл собственного формата *.qrp и отсылка (передача) этого файла партнеру с тем, чтобы он, пользуясь упомянутой программой, раскрыл окно предварительного просмотра и загрузил в него отчет из файла. Однако по разным причинам у партнера может не быть нужной программы просмотра отчета. Для такого случая в компоненте TQuickRep предусмотрен специальный метод ExportToFilter, с помощью которого программа может преобразовывать отчет в текстовый файл (*.txt), в текст с двойными кавычками (*.cvs) или в гипертекстовый файл (*.htm).

    Для экспорта отчета в "чужой" формат предусмотрены фильтрующие компоненты TQRTextFilter, TQRCSVFilter, TQRHTMLFilter. Их использование не представляет никаких проблем: просто поместите их на отчет, и тогда после щелчка в окне предварительного просмотра на кнопке SaveReport в раскрывающемся списке можно будет выбрать тип сохраняемого файла (рис.1).


Рис.1. Список выбора типа файла для сохраняемого отчета

    Экспортировать файл можно не только с помощью указанных выше компонентов и окна предварительного просмотра, но также программным обращением к методу TQuickRep.ExportToFilfer, например:

uses  QRExport;     //Для программного экспорта ссылка на этот модуль обязательна!
procedure MyForm.ButtonClick(Sender: TObject);
var
    AExportFilter: TQRHTMLDocumentFilter;
 begin
          AExportFilter: TQRHTMLDocumentFilter.Create(‘REPORT.HTM’);
     try
           MyReport.ExportToFilter(AExportFilter)
     finally
               AExportFilter.Free;
     end;
end;

    Единственным параметром обращения к методу является объект класса TQRExportFilter, точнее – одного из его специализированных потомков: TQRHTMLDocumentFilter, TQRASCIIExportFilter и TQRCommaSeparatedFilter. Все эти классы описаны в модуле QRExport.

    Приведем пример программы демонстрирующей работу этих компонентов. Для этого изменим пример шага 11 "КомпонентTQRExpr", добавив на форму отчета компоненты TQRTextFilter, TQRCSVFilter, TQRHTMLFilter.

    Например, отчет экспортированный в текстовый файл имеет следующий вид:


Рис.2. Отчет, экспортированный в текстовый файл

    Текст этого примера можно взять здесь.

    На следующем шаге мы рассмотрим компонент TQRSubDetail.




Предыдущий шаг Содержание Следующий шаг