Самоучитель по Delphi 7 для профессионалов


       Здесь консультант по детскому сну. |   

Компонент TRvCustomConnection



Компонент TRvCustomConnection обеспечивает доступ к самым разнообразным источникам данных. Фактически через этот компонент разработчик может передать в отчет все данные, какие только сможет загрузить в приложение. Причина столь удивительной универсальности кроется в том, что:

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

Повторим банальную истину, что чудес не бывает, и, как видите, за гибкость приходится расплачиваться дополнительным объемом работы.

Для того чтобы настроить соединение через компонент TRvCustomConnection, необходимо выполнить следующие действия.

1. Определить число строк отчета и установить его в компоненте.

2. Создать структуру данных отчета (метаданные). Здесь нужно решить, какие именно поля будут присутствовать в отчете, в каком порядке, дать им названия и определить их тип данных.

3. Создать процедуру, обеспечивающую передачу данных из источника данных в текущую строку отчета.

4. Связать компонент соединения с объектом прямого просмотра.

Обсудим эту последовательность действий более детально на простом примере. Создадим небольшое приложение, которое позволяет загружать текстовые файлы в два компонента TMemo. Перенесем на форму и настроим все необходимые компоненты Rave Reports.

Затем разработаем отчет, который печатает данные из этих двух компонентов в двух колонках. Отчет тоже несложен и состоит из полос заголовка и окончания, а также полосы данных с расположенными на ней двумя элементами Оформления DataText.

Наша задача сейчас — настроить компонент TRvCustomConnection так, чтобы он мог отображать данные из двух компонентовTMemo.

Листинг 26.1. Методы -обработчики событий компонента TRvCustomConnection,  обеспечивающего соединение отчета с массивами Memo

procedure TfmMain.rcCustomOpen(Connection: TRvCustomConnection);

 begin

Connection.DataRows := Max(meLeft.Lines.Count, meRight.Lines.Count);

Содержание  Назад  Вперед