Если отчет Rave Reports должен отображать данные из какого-либо источника данных, на этапе разработки в визуальной среде в проект отчета должны быть добавлены специальные объекты, обеспечивающие соединение с источником данных и формирование набора данных, который затем отображается в отчете.
В Rave Reports существуют два типа соединений с источниками данных (рис. 26.1):
соединение через драйвер Rave Reports;
соединение через компонент Rave Reports и компонент
набора данных в приложении Delphi.
В обоих случаях соединение инкапсулировано в объекте визуальной среды, а различаются только способы доступа к данным и набор компонентов, необходимый для этого.
При соединении через драйвер Rave Reports проект отчета на этапе разработки и ядро генератора отчетов на этапе выполнения используют драйверы, которые реализованы в виде файлов с расширением rvd. Именно наличие этих файлов предопределяет выбор технологий доступа к данным при создании объекта соединения в среде разработки (рис. 26.2). В стандартную поставку Rave Reports 5.0 входят драйверы для следующих технологий доступа к данным:
ADO;
dbExpress;
BDE.
Рис. 26.1. Соединения
с источниками данных в отчете Rave Reports
При соединении через компоненты в Delphi сначала
необходимо создать объект просмотра Direct Data View, который реализует
прямой доступ к набору данных на основе активного соединения в приложении Delphi.
При этом соединение может быть создано на основе любой доступной в Delphi технологии
доступа к данным. Это позволяет сделать набор компонентов Rave Reports на странице
Rave Палитры компонентов Delphi. Это следующие технологии доступа к данным:
ADO;
DbExpress;
BDE;
InterBase
Express;
клиентские
наборы данных распределенных приложений;
источники
данных, не использующие базы данных (текстовые файлы, электронная почта, электронные
таблицы и т. д.).
За визуализацию данных в отчете отвечают специализированные
элементы оформления, расположенные на странице Report Палитры инструментов
визуальной среды Rave Reports. Они связываются с полями объекта просмотра данных,
созданного разработчиком. Это может быть просмотр на основе запроса SQL, созданного
разработчиком, или прямой просмотр набора данных Delphi. Просмотр объединяет
нужные поля из таблиц, которые доступны через соединение с источником данных
(см. гл. 24). Для этого используется свойство
Dataview элементов оформления.
Знаете ли Вы, почему "черные дыры" - фикция? Согласно релятивистской мифологии, "чёрная дыра - это область в пространстве-времени, гравитационное притяжение которой настолько велико, что покинуть её не могут даже объекты, движущиеся со скоростью света (в том числе и кванты самого света). Граница этой области называется горизонтом событий, а её характерный размер - гравитационным радиусом. В простейшем случае сферически симметричной чёрной дыры он равен радиусу Шварцшильда". На самом деле миф о черных дырах есть порождение мифа о фотоне - пушечном ядре. Этот миф родился еще в античные времена. Математическое развитие он получил в трудах Исаака Ньютона в виде корпускулярной теории света. Корпускуле света приписывалась масса. Из этого следовало, что при высоких ускорениях свободного падения возможен поворот траектории луча света вспять, по параболе, как это происходит с пушечным ядром в гравитационном поле Земли. Отсюда родились сказки о "радиусе Шварцшильда", "черных дырах Хокинга" и прочих безудержных фантазиях пропагандистов релятивизма. Впрочем, эти сказки несколько древнее. В 1795 году математик Пьер Симон Лаплас писал: "Если бы диаметр светящейся звезды с той же плотностью, что и Земля, в 250 раз превосходил бы диаметр Солнца, то вследствие притяжения звезды ни один из испущенных ею лучей не смог бы дойти до нас; следовательно, не исключено, что самые большие из светящихся тел по этой причине являются невидимыми." [цитата по Брагинский В.Б., Полнарёв А. Г. Удивительная гравитация. - М., Наука, 1985] Однако, как выяснилось в 20-м веке, фотон не обладает массой и не может взаимодействовать с гравитационным полем как весомое вещество. Фотон - это квантованная электромагнитная волна, то есть даже не объект, а процесс. А процессы не могут иметь веса, так как они не являются вещественными объектами. Это всего-лишь движение некоторой среды. (сравните с аналогами: движение воды, движение воздуха, колебания почвы). Подробнее читайте в FAQ по эфирной физике.