Создание простых баз данных в Delphi

Ваша первая локальная база данных

Давайте попробуем применить все полученные на ранее пройденных занятиях знания и построить локальную базу данных — напишем программу для приема объявлений в «бегущую строку», которую мы нередко наблюдаем в эфире местных телекомпаний.

 

Сначала создадим две таблицы для нашей базы данных. Первая будет хранить сведения о заказчике, текст объявления и другую информацию. Вторая предназначена для настроек и будет содержать цены за одно слово объявления для физических н юридических лиц.
Итак, структура первой таблицы изображена па рис. 8.1. Таблица OBJAV.DBF состоит из семи полей:
  • НО — поле символьного типа(Char), которое может содержать максимум 40 символов. Предназначено для хранения фамилий заказчиков или названий организаций. Это поле является индексным;
  • TEXT — поле произвольного размера (Memo-поле). Необходимо для хранения текста объявления;
  • SOBST — тип собственника (Boolean). Принимает значение True для физических лиц или False для юридических;
  • SUMMA — числовое поле (Numeric). Содержит значение суммы, выплаченной заказчиком за объявление;

 Рис. 8.1. Структура таблицы OBJAV.DBF

 

  • DATAP — поле типа дата (Date). Фиксирует дату приема объявления;
  • DATASTART — поле типа дата (Date). Содержит дату выхода объявления в эфир;
  • DATAEXP — поле типа дата (Date). Отражает срок окончания публикации объявления в эфире.

Структура второй таблицы показана на рис. 8.2. 

 Рис. 8.2. Структура таблицы Cena.dbf

 

Таблица OBJAV.DBF состоит из двух полей:

  •  FCENA — числовое поле со значением стоимости одного слова объявления для физических лиц;
  •  UCENA — числовое поле. Содержитзначение цены за одно слово объявления для юридических лиц.

Пусть таблицы созданы и сохранены в одном каталоге. Теперь проектируем формы.

Их будет три:

  1. главная форма — для приема объявлений;
  2. форма настройки — для задания цены одного слова текста для физических и юридических лиц;
  3. форма поиска — для поиска (с помощью фильтрации) записей по фамилии или по наименованию организации;

Главная форма выглядит так, как показано на рис. 8.3.

Рис 8.3. Главная форма 

Мы ие будем подробно останавливаться на описании каждого компонента, расположенного в форме. Отметим только, что поля для ввода фамилии и суммы — это поля DBEdit. Они привязаны к таблице Table1 через компонент DataSource1 с помощью свойства DataSource. Поле для ввода текста объявления — компонент DBMemo Он также привязан к таблице Table1. Таблица Table1 изначально активна (для этого установите ее свойство Active в True). Также свойству TableName таблицы Table1 нужно присвоить значение, указывающее на путь к таблице OBJAV.DBF.

 

Кроме того, для отображения отчета добавим в форму два компонента

  • RvDataSetConnection1 — для установки связи будущего отчета, который мы с вами создадим далее, с таблицей Tablel. Для этого установите свойство DataSet компонента RvDataSetConnectionl в Tablel;
  • RvProjectl — для указания файла отчета, который мы создадим с помощью дизайнера отчетов Rave Designer позже. Пока отметим, что файл отчета будет называться MyReport.rav и именно его нужно будет указать в свойстве ProjectFile компонента RvProject1.

Приведем текст программы модуля Uniti, который сопоставлен с главной формой Form1 (листинг 8.1). В него включены подробные комментарии, и он не должен вызвать затруднений при изучении.

Листинг 8.1. Модуль Unit1 


 

Эта форма называется Form2 и содержит небольшое количество компонентов. Отметим, что таблица Tablel должна в свойстве TableName содержать путь к таблице CENA.DBF. Компоненты DBEditl и DBEdit2 привязаны к полям FCENA н UCENA таблицы Tablel соответственно. Текст программы модуля Unit2 приведен в листинге 8.2. Он тоже достаточно понятен.

Листинг 8.2. Модуль Unit2 

 

Форма поиска представлена на рис. 8.5. 

Форма поиска носит имя Form3 и содержит компоненты DBGrid1 и DBNavigator1. Они предназначены для отображения результатов поиска н редактирования данных. Поиск осуществляется с помощью установки фильтра и ведется по полю FIO. Текст программы модуля Unit3 приведен в листинге 8.3. Все необходимые для понимания программы комментарии в листинг включены.

Листинг 8.3. Модуль Unit1


Теперь осталось создать файл отчета, который будет выводить информацию о поступивших за день объявлениях.

Запустите дизайнер отчетов

Tools-> Rave Designer (Инструменты -> Дизайнер отчетов).

Затем выберите пункт меню

File -> New Report (Файл -> Новый отчет)

(рис. 8.6).

Теперь выбираем

File -> New Data Object (Файл-> Новый объект данных)

и в открывшемся окне — Direct Data View (Непосредственный просмотр данных) (рис. 8.7).

Нажимаем Next (Далее) и в следующем окне — Finish (Готово) (рис. 8.8).

 

Если вы обратите внимание на дерево проекта, то, раскрыв в нем блок Data View Dictionary (Словарь просмотра данных), а затем DataView1, вы увидите перечень всех полей, содержащихся в таблице Tablel (рис. 8.9).

 

Теперь с помощью Мастера простого отчета создаем отчет. Выбираем пункт меню Tools ? Report Wizards ? Simple Table (Инструменты ? Мастер отчетов ? Простой отчет). В первом шаге Мастера простого отчета выбираем единственное представление данных DataViewl (рис. 8.10) и нажимаем кнопку Next

Рис. 8.6. Окно дизайнера отчетов

Рис. 8.7. Окно установки связи с данными

Рис 8.8. Окно установки связи с набором данных

Рис 8.9. Панель дерева проекта с полями таблицы

Рис 8.10. Первый шаг Мастера простого отчета

На втором шаге мастера выбираем поля, которые необходимо поместить в наш отчет. В нашем случае это FIO, SUMMA и DAT ASTART (рис. 8.11). После выбора нажимаем Next

Рис 8.11. Второй шаг Мастера

На третьем шаге выстраиваем порядок следования (слева направо) полей, то есть порядок их расположения в отчете (рис. 8.12).

Рис 8.12. Третий шаг Мастера

Следующий шаг мастера позволит нам задать имя для отчета, которое будет отображаться в начале отчета (рис. 8.13).

Рис. 8.13. Четвертый шаг Мастера

Последний шаг мастера позволяет установить шрифты для разных элементов отчета (рис. 8.14).

Рис. 8.14. Последний шаг Мастера

Все, теперь нажимаем кнопку Generate (Создать) и получаем готовый отчет (рис 8.15).

Осталось исправить подписи к полям на панели DataViewlBand. Для этого выбираем нужную подпись, например FIO, и сперва щелкаем на ней мышью, а затем в окне свойств исправляем свойство Text на нужный текст, например Фамилия/Организация (рис. 8.16).

Рис. 8.15. Готовый отчет 

Рис. 8.16. Исправленные подписи к полям

Теперь сохраняем файл отчета под именем MyReport.rav с помощью пункта меню Rie -> Save As (Файл -> Сохранить как).

Итак, мы создали полноценную программу, которая работает с локальной базой данных. Теперь пришло время для разговора об особенностях создания клиент-серверных приложений, работающих с базами данных.

dle

Помоги проекту! Расскажи друзьям об этом сайте: