- •О. Б. Малков работа с базами данных в среде delphi Учебное пособие для студентов заочной формы обучения
- •Содержание
- •1. Реализация работы с базами данных в среде delphi
- •1.1. Базы данных и системы управления базами данных
- •1.2. Технология доступа к данным bde
- •1.3. Компоненты приложений, работающих с базами данных
- •2. Демонстрационная база данных
- •2.1. Логическая модель данных предметной области
- •2.2. Физическая модель данных предметной области
- •3. Создание базы данных
- •3.1. Создание псевдонима
- •3.2. Создание структуры таблиц базы данных
- •3.3. Свойства таблиц Paradox
- •3.4. Заполнение таблиц базы данных
- •4. МодулЬ данных
- •4.1. Создание модуля данных
- •4.2. Связывание наборов данных
- •4.3. Создание объектов-полей
- •4.4. Проектирование и анализ структуры базы данных
- •4.5. Создание объектов-столбцов
- •4.6. Реализация бизнес-правил
- •5. Создание приложения, работающего с базой данных
- •5.1. Выбор типа пользовательского интерфейса
- •5.2. Создание главной формы
- •5.3. Создание рабочих форм
- •5.4. Создание форм ввода новых данных
- •6. Создание запросов
- •6.1. Компонент Query
- •6.2. Создание sql-запросов
- •6.2.1. Простая выборка данных
- •6.2.2. Выборка из связанных таблиц
- •6.2.3. Сортировка записей
- •6.2.4. Сложные критерии отбора
- •6.2.5. Псевдонимы таблиц и комментарии
- •6.2.6. Агрегатные функции и группировка записей
- •6.2.7. Создание и удаление таблиц и индексов
- •6.2.8. Вставка, удаление и редактирование записей
- •Insert into Имя_таблицы (Список_полей
- •Values (Список_значений)
- •6.3. Построение запроса в демонстрационной базе данных
- •7. Создание отчетов
- •7.1. Основы технологии Rave Reports
- •7.2. Визуальная среда Rave Designer
- •7.3. Составляющие проекта отчета
- •7.3.1. Библиотека отчетов
- •7.3.2. Каталог глобальных страниц
- •7.3.3. Каталог объектов данных
- •7.4. Типы отчетов
- •7.4.1. Отчет с единственной таблицей или запросом
- •7.4.2. Отчет главный-детальный
- •7.4.3. Группирующий отчет
- •7.5. Пример создания отчетов в приложении Sale
- •7.6. Экспорт отчета в файл
- •8. Создание СправочнОй системЫ
- •8.1. Создание файла документа справочной информации
- •8.2. Создание проекта справочной системы
- •8.3. Доступ к справочной информации
- •9. Создание установочного диска
- •9.1. Программа InstallShield Express
- •9.2. Создание проекта инсталляционной программы
- •Библиографический список
5. Создание приложения, работающего с базой данных
5.1. Выбор типа пользовательского интерфейса
Перед созданием интерфейса приложения необходимо решить, какой тип пользовательского интерфейса выбрать: однодокументный или многодокументный.
Однодокументный интерфейс (SDI) применяется, когда все дочерние окна выполняют разнородные функции, слабо связаны между собой и их положение на экране относительно главного окна несущественно. Примерами SDI-приложений являются среда разработки Delphi, Проводник Windows и т. д.
Многодокументный интерфейс (MDI) применяется, когда большинство операций приложения выполняется в пределах рабочей области главного окна приложения, и все дочерние окна предназначены для выполнения подобных операций или содержат однотипную информацию. Примерами MDI-приложений являются Microsoft Word, Microsoft Excel, утилита SQL Builder из состава Delphi и т. д.
В большинстве случаев предпочтение следует отдавать интерфейсу SDI. Интерфейс MDI предназначен для очень узкого круга приложений. Кроме того, следует отметить, что Microsoft не поощряет разработку новых приложений MDI (для Windows было написано слишком много плохих программ этого типа).
Основными операциями нашего приложения будут:
регистрация новых заказчиков;
просмотр и редактирование справочника выпускаемой продукции;
оформление отгрузки продукции;
учет оплаты отгруженной продукции;
получение информации о недооплате.
Операции из этого перечня с функциональной точки зрения слабо связаны между собой. Они обращаются к одной БД и взаимодействуют через данные, но оформление отгрузки напрямую никак не помешает просмотру справочника выпускаемой продукции, а получение отчета о недооплате не повлияет на процесс регистрации новых договоров, при условии, что эти операции не будут выполняться одновременно в одном приложении. Положение рабочих форм относительно главной формы также несущественно.
Исходя из сказанного, выберем для нашего приложения однодокументный интерфейс.
5.2. Создание главной формы
В рамках однодокументного интерфейса главная форма приложения для работы с БД может быть чисто функциональной (содержать только панель инструментов) или комбинированной (содержать панель инструментов и информационную панель). Предпочтительнее оформить главное окно приложения в виде панели инструментов, содержащей кнопки по числу основных выполняемых операций. Главное окно приложения показано на рис. 31.
Рис. 31. Главное окно приложения
Щелчок на первых четырех кнопках приведет к появлению соответствующих рабочих форм. Щелчком на кнопке Help вызывается справочник по работе с приложением. Щелчок на кнопке Close закрывает главное окно.
Заготовка главной формы автоматически появляется при создании нового проекта. Напомним, что модуль главной формы был ранее сохранен нами под именем fmMainUnit (см. п. 4.2). Изменим некоторые свойства главной формы следующим образом:
Caption = ‘Сбыт готовой продукции’ Heght = 100
Name = FMain Width = 281
BorderStyle = bsSingle BorderIcons.biMaximize = False
Для главного окна приложения наиболее подходящий стиль – BorderStyle = bsSingle с исключением из доступных кнопки развернуть (BorderIcons.biMaximize = False). Это позволит пользователю сворачивать и восстанавливать окно, но не даст возможности развернуть окно на весь экран или изменить размер окна.
Так как все действия в приложении выполняются через главную форму, необходимо, чтобы она была доступна в любой момент времени. Для этого укажем в методе-обработчике события OnShow нулевые координаты верхнего левого угла формы:
procedure TFMain.FormShow(Sender: TObject);
begin
FMain.Left:=0; FMain.Top:=0;
end;
Разместим на форме компонент Panel1, установим свойство Align = alClient и очистим свойство Caption. Расположим на панели шесть кнопок:
Button1 (Caption = ‘Изделия’) Button2 (Caption = ‘Заказчики’)
Button3 (Caption = ‘ТТН’) Button4 (Caption = ‘ПТР’)
BitBtn1 (Kind = bkHelp) BitBtn2 (Kind = bkClose)
Разместим на форме компонент PopupMenu1. В свойстве PopupMenu формы FMain выберем PopupMenu1.
Свяжем модуль главного окна с модулем данных dmSaleUnit командой File > Use Unit. Сохраним все сделанные в проекте изменения.