
- •Раздел 1. Проектирование баз данных. 2
- •Раздел 2. Разработка приложений для работы с Базами Данных в среде Delphi. 25
- •Раздел 1. Проектирование баз данных.
- •1.1. Основы построения баз данных. Модели данных.
- •1.1.1. Реляционная модель данных.
- •1.1.2. Нормализация базы данных.
- •1.2. Проектирование базы данных методом “сущность-связь”.
- •Раздел 2. Разработка приложений для работы с Базами Данных в среде Delphi.
- •2.1. Технология создания информационной системы.
- •2.1.1.Создание таблиц базы данных в Database Desktop.
- •2.1.2. Целостность базы данных.
- •Программа bde Administrator и модули данных.
- •Компоненты доступа и работы с данными. Тема: Наборы данных. Состояние и режимы наборов данных.
- •Тема: Объекты поля. Операции с полями.
- •Тема. Отображение и выбор значения поля.
- •Тема. Визуальные компоненты отображения записей из набора данных.
- •Закладки.
- •Тема. Ограничения на вводимые значения.
- •Тема. Сортировка набора данных.
- •Тема. Операции с таблицей базы данных.
- •Тема. Фильтрация записей.
- •Тема. Поиск записей.
- •Тема. Модификация набора данных.
- •Тема. Работа с отчетами
- •Отчет для связанных наборов данных
- •Составной отчет
- •Модули данных
- •Конструктор отчетов Rave Report
- •Реляционный способ доступа к данным.
- •Основные сведения о языке sql.
- •Оператор выбора Select.
- •Агрегирование и группирование записей.
- •Объединение таблиц.
- •Вложенные запросы.
- •Модификация записей.
- •Примеры баз данных
Конструктор отчетов Rave Report
Для создания отчетов в среде Delphi 6, 7 предлагается использовать компоненты Rave Reports. Эти компоненты были разработаны компанией Nevrona (www.nevrona.com/rave) и позволяют создавать отчеты, которые поддерживают такие механизмы доступа к данным, как BDE, dbExpress, ADO. В отчеты Rave Reports можно включать графические элементы и сохранять в различных форматах (PDF, HTML, RTF).
Для запуска Rave Reports можно выполнить одно из следующих действий:
запустить приложение Rave.exe (c:\Program Files\Borland\Delphi7\Rave5)
выполнить команду ToolsRave Designer (ИнструментыДизайнер отчетов).
Окно дизайнера отчетов состоит из следующих элементов:
Navigation Area (область навигации) – содержит главное меню, панели инструментов и панель компонентов;
Page (страница отчета) – находится в центре окна и разбита на ячейки с помощью четки;
Project Tree Panel (панель дерева проекта) – в правой части окна, позволяет быстро переходить к нужному объекту проекта;
Property Panel (панель свойств) – в левой части окна, служит для отображения и задания свойств компонентов отчета.
В структуре проекта выделяют следующие элементы:
Rave Project – контейнер для всех других компонентов, создается одновременно с созданием нового файла проекта, всегда один для одного файла проекта. Свойства: AdminPassword- позволяет ограничить доступ пользователей к отчетам и данным; Parametres – позволяет создавать элементы, в которые Delphi помещает результаты вычислений для использования их другими компонентами. PIVars – служит для описания специфических данных, которые требуют динамического обновления во время генерации отчета;
Report (Отчет) – содержит страницы отчета.
Page (Страница) – базовый визуальный компонент, на котором помещаются все стандартные компоненты (отчета, рисования).
Global Page (Глобальная страница) – страницы размещаются под узлом Каталога Глобальных страниц в дереве проекта. Содержат шаблоны, используемые для различных целей. Все глобальные страницы могут быть «зеркалированы».
Data Objects (Объекты данных) – компоненты Data Connection для соединения с данными. Диалоговое окно Data Connection вызывается нажатием кнопки New Data Object и предлагает варианты выбора: DataLookupSecurity Controller, Database Connection, Direct Data View, Simple Security Controller, Driver Data View. Выбранный объект помещается в дерево проекта. Соединение с данными из приложений на Delphi обеспечивает Direct Data View.
Структура приложения. В структуру приложения входят:
Стандартные компоненты Data Connection, которые обеспечивают связь между данными: RvCustomConnection, RvDataSetConnection, RvTableConnection.
Компонент RvProject- позволяет создавать, изменять, отображать и печатать компоненты отчета.
Файл проекта отчета с расширением RAV, где сохраняются все определения и настройки.
Отчеты сохраняются в Библиотеке отчетов (Report Library) проекта.
Глобальные страницы сохраняются в Каталоге глобальных страниц проекта (Global Page Catalog).
Виды данных сохраняются в Словаре видов данных проекта (Data View Dictionary).
Компоненты страницы отчета. Большинство компонентов размещается на странице отчета, кроме Band и DataBand, которые размещаются на Region.
Regoin (Регион) – контейнер для полос;
DataBand – предназначен для отображения динамической информации из видов данных.
Band – предназначен для размещения фиксированных компонентов, не изменяющихся на странице. Например, Text, CalcText.
DataText – служит для отображения значений из полей набора данных в любом месте страницы. Связать этот компонент с данными можно двумя способами: выбрать одиночное имя поля из выпадающего списка в свойстве DataField; либо с помощью окна DataTextEditor, который вызывается двойным щелчком на многоточии в свойстве DataField. Предварительно задать свойство DataView.
DataMemo – позволяет добавлять мемо-поля базы данных. Для выбора нужно установить свойства DataView и DataField.
CalcText – предназначен для вычислений и отображения результатов. Свойства: CalcType – определяет тип вычисления (ctAverage, ctCount, ctMaximum, ctMinimum, ctSum); CountBlanks- указывает, будут ли учитываться при подсчете пустые значения; RunningTotal- задает обнуление для вычисляемого значения при запуске генерации отчета.
CalcOp - невизуальный компонент, с помощью которого можно производить вычисления с данными: значения из полей (свойство SrcDataField, Scr2DataField), константы (Src1Value,Src2Value), другие вычисляемые параметры (Src1CalcVar,Src2CalcVar). Свойство Operator задает тип операции.
CalcController – невизуальный компонент, который связывает между собой компоненты DataBand, CalcText и CalcTotal через свойства Controller.
DataCycle – невизуальная посола отчета, связанная с таблицей базы данных. Это цикл через все detail-записи данных для одного уровня master-записи. Имя master-таблицы определяется свойством MasterDataView. Две таблицы связываются через свойство DetailKey. Данные при формировании отчета могут быть отсортировать через свойство MasterKey.
DataMirror Section – предназначен для создания «зеркальной» области, которая будет использоваться в отчете для создания вариаций отчетов.
Пример. С помощью мастера Simple Table создать простой отчет для БД Tovar.
Создать компонент Table и инициализировать таблицу, установив свойство Active в True.
Создать компонент RvDataSetConnection: TRvDataSetConnection
(вкладка Rave). Свойству DataSet установить значение Table1(компонент базы данных, созданный на первом шаге). Дать ему имя TovarReport.
Создать компонент RvProject: TRvProject
. Двойным щелчком мыши на этом компоненте вызвать визуальный дизайнер.
В окне дизайнера Rave Reports выполнить команду FileNewData Object. В появившемся окне Data Connections выбрать Direct Data View и нажать кнопку Next. В окне Data Connection в списке Active Data Connections выделить имя TovarReport и нажать кнопку Finish.
В панели Project Tree в списке Data View Dictionary выбрать новый вид DataView1 и через свойство Name изменить ему имя на TovarReportDv.
Выполнить команду ToolsReport WizardsSimple Table для вызова мастера простой таблицы:
Выделить имя TovarReport и нажать Next;
Выбрать нужные поля для отображения в отчете, например, Tovar, Cena, Kol_vo и нажать Next;
Если необходимо, изменить порядок полей и нажать Next;
Задать имя отчета в поле Report Title. Изменить размеры шрифта, если нужно, и нажать Generate для создания отчета.
Для просмотра результатов выполнить команду FileExecute Report. В появившемся окне Output Options выбрать Preview и нажать Ok.
Компоненты управления отчетом.
RvProject – предназначен для установки связи с файлом отчета. Свойства: ProjectFile – задает файл проекта отчета с расширением RAV. Метод Open загружает этот файл в оперативную память. Метод Close закрывает файл проекта. При включении компонента RvReport в приложение необходимо обеспечить следующую последовательность операций:
RvProject.Open – открыть файл проекта, указанный в свойстве ProjectFile.
RvProject.GetReportList(ListBox1.Items,true) – загрузка имен отчетов в списокListBox1.
Компоненты Data Connection позволяют управлять посылкой данных в отчет Rave Reports:
RvCustomConnection предназначен для связи DirectDataView, созданного дизайнером Rave Reports, с обычными данными (массивами в памяти, бинарными файлами, данными, генерируемыми во время событий);
RvDataSetConnection предназначен для связи DirectDataView с набором данных (например, компонентом DataSet);
RvTableConnection предназначен для связи DirectDataView с таблицей (например, компонентом Table);
RvQueryConnection класс предназначен для связи DirectDataView с запросом (например, компонентом Query).
Имеются следующие виды событий:
OnEOF происходит при достижении конца данных. Значение true – достигнут конец данных.
OnFirst происходит в момент перемещения указателя текущей записи в первую строку данных.
OnGetCols возникает, когда Rave Reports получает метаданные (имя поля, тип, размер символов, полные имя и описание).
OnGetRow происходит при получении данных из текущей строки.
OnGetSorts происходит при потребности Rave в информации о поддерживаемых методах сортировки.
OnNext возникает при перемещении указателя текущей записи на следующую строку данных.
OnOpen генерируется при инициализации сессии. Текущее состояние может быть впоследствии восстановлено генерацией события OnRestore.
OnRestore происходит, когда Rave хочет восстановить состояние данных, запомненное перед открытием сессии.
OnSetFilter возникает при потребности фильтрации данных (например, в отчетах master-detail).
OnSetSort возникает при необходимости сортировки данных.
OnValidateRow генерируется для каждой строки данных для их фильтрации.
Пример. Создать отчет для базы данных Pokupka.
На форме разместить два компонента Table. Задать им свойства:
DatabaseName=Pokupka; TableName=Pokupka.db; Name=tbPokupka; Active=true;
DatabaseName=Pokupka; TableName=Pokupka.db; Name=tbPokupka; Active=true;
Создать два компонента RvDataSetConnection. Задать им свойства:
DataSet =tbPokupka; Name=rvdsPokupka;
DataSet =tbTovar; Name=rvdsTovar;
Создать компонент RvProject. Задать ему свойства:
Name=RvPokupka; ProjectFile=e:\Student\My\my_rvpokupka.rav
Вызвать дизайнер отчетов Rave Reports и в нем выполнить следующее:
FileNew Report (ФайлНовый отчет)
FileNew Data Object (ФайлНовый объект данных) и в появившемся окне выбираем Direct Data View, затем Next, в следующем окне выбираем rvdsPokupka, затем Finish (Готово). Устанавливаем свойство Name=DtvPokupka.
FileNew Data Object (ФайлНовый объект данных) и в появившемся окне выбираем Direct Data View, затем Next, в следующем окне выбираем rvdsTovar, затем Finish (Готово). Устанавливаем свойство Name=DtvTovar.
С помощью мастера простого отчета Simple Table создать простой отчет, включив поля Data, Code_Tovar, Number.
Для отображения в колонке Code_Tovar вместо кодов товаров их наименования из таблицы Tovar необходимо для соответствующего компонента Datatext2:Data Text component установить следующие свойства: LookupDataView=DtvTovar; LookupField=Code_Tovar; LookupDisplay=Tovar;
Изменить свойства Text для компонентов Text Component, означающих названия колонок в отчете.
Установить необходимые шрифты для всех компонентов отчета.
Сохранить отчет командой FileSave, задать имя файлу отчета e:\Student\My\my_rvpokupka.rav
Завершить работу с Rave Report.
На форме расположить компонент Button, задать свойства Name=btReport, Caption=Отчет, и включить обработку procedure TForm1.btReportClick(Sender: TObject); begin RvPokupka.Execute; end;
Приложение с отчетом создано.