ЛАБОРАТОРНАЯ РАБОТА № 7. Тема: Создание формы прихода продуктов на склад
Тема: Создание формы прихода продуктов на склад
Цель: Научиться создавать формы и связи между формами
Оборудование и/или программное обеспечение: ПК, Delphi
Теоретическая часть
Для того чтобы обеспечить просмотр базы данных в режиме формы, в форму приложения нужно добавить компоненты, обеспечивающие просмотр и, если нужно, редактирование содержимого полей записи, причем по одному компоненту для каждого поля.
Компонент TDBText позволяет только просматривать содержимое поля, а компоненты TDBEdit и TDBMеmо - просматривать и редактировать. Ниже приведены некоторые свойства этих компонентов. Свойства перечислены в том порядке, в котором следует устанавливать их значения после добавления в форму приложения.
Таблица 1. Основные свойства компонентов | |
Свойство | Описание |
Name | Имя компонента. Используется для доступа к свойствам компонента |
DataSource | Компонент-источник данных |
DataField | Поле базы данных, для отображения или редактирования которого используется компонент |
Давайте создадим программу для работы с созданной БД нашего класса (см. 21 шаг). Для этого в каталоге нашей БД создадим каталог с именем Prog. Запустим Delphi и на новую форму поместим компонент TTable, который находится на вкладке BDE.
После того, как мы разместили в форме компонент TTable, установим его свойства. Для этой цели воспользуемся Инспектором объектов (Object Inspector), который обычно помещается слева от формы. Инспектор объектов позволяет устанавливать свойства того компонента в форме, который выделен при помощи мыши. Выделим мышью компонент TTable.
Установим значение свойства DatabaseName (псевдоним БД) в CLASS при помощи выпадающего списка или введя его вручную.
Установим значение свойства TableName (имя таблицы БД) в Spisok.DB при помощи выпадающего списка. После этого зададим значение свойства Active равным True. Произойдет активизация компонента TTable (он по умолчанию имеет имя Table1), то есть он будет получать данные из таблицы Spisok.DB.
Расположим на форме компонент TDataSource, который находится на вкладке Data Access. Он является связующим звеном между невизуальными компонентами (в данном случае Table1) и визуальными компонентами, которые мы добавим в форму позднее. Поэтому компоненты TDataSource часто называют источниками данных. Установим свойство DataSet (имя набора данных) компонента TDataSource в значение Table1 путем выбора из выпадающего списка.
Теперь расположим в форме компоненты просмотра и редактирования полей БД. Это четыре компонента TDBEdit (DBEdit1, DBEdit2, DBEdit3, DBEdit4) с вкладки Data Controls, а также четыре соответствующие им компонента TLabel, расположенные на вкладке Standard. Зададим в свойстве Caption у компонентов TLabel соответственно значения Фамилия, Имя, Год рождения, Любимый предмет. И, наконец, из вкладки Additional поместим компонент TBitBtn и его свойству Kind присвоим значение bkClose.
Теперь установим следующие свойства для компонентов TDBEdit.
Таблица 2. Установка свойств у TDBEdit | ||
Компонент | DataSource | DataField |
DBEdit1 | DataSource1 | Family |
DBEdit2 | DataSource1 | Name |
DBEdit3 | DataSource1 | God |
DBEdit4 | DataSource1 | Predmet |
Так как значению свойства Active компонента Tаblе1 присвоено значение True, то сразу после того, как будет присвоено значение свойству DataField, в поле компонента TDBEdit появится содержимое соответствующего поля первой записи таблицы базы данных. Если таблица не содержит данных, поле остается незаполненным. Если значение свойства Active компонента Table1 равно False, то в поле компонента TDBEdit появляется его имя, которое является значением свойства Name.
Внешний вид нашей формы показан на рисунке 1.
Рис.1. Внешний вид формы
Практическая часть
На этом уроке мы создадим формы прихода продуктов на склад. Приход продуктов будет состоять из трех форм. В первой мы будем хранить данные о приходе. Во второй, данные о продуктах для каждого прихода. Третья – форма для выбора продуктов.
Приступим к созданию первой формы.
Создаем новую форму File->New->Form –Delphi
В инспекторе объектов устанавливаем следующие свойства для новой формы
Caption -> Приход;
FormStyle -> fsMDIChild;
Name -> Form_prihod;
Сохраните модуль с именем prihod.
Пропишем Uses general; после раздела implementation в программном модуле unit prihod.
А программном модуле unit general главной формы пропишем Uses ed_izmer, product_group, products, prihod;
Далее размещаем на форме следующие компоненты
Три кнопки TButton из вкладки Standart
В инспекторе объектов для Button1 устанавливаем свойство Caption -> Новая запись;
для Button2 устанавливаем свойство Caption -> Удалить запись;
для Button3 устанавливаем свойство Caption -> Закрыть.
А из вкладки Data Controls помещаем на форму компонент TDBGrid.
Сейчас сделаем запуск через меню Склад-> Приход из главной формы. Для этого выбираем в меню Project -> Options…
Выбираем Forms и перемещаем Form_prihodиз Auto-create forms в Avalable forms.
Переходим на главную форму, щелкаем мышкой по компоненту MainMenu1, а затем по пункту Приход
И пишем следующий обработчик события:
procedure TForm_general.N7Click(Sender: TObject); begin f:=0; //проверяем, активна ли наша форма if ActiveMDIChild.Caption<>'Приход' then begin //если нет то ищем ее среди неактивных и если находим, то показываем ее for i:=0 to form_general.MDIChildCount-1 do if form_general.MDIChildren[i].Caption='Приход' then begin MDIChildren[i].Show;f:=1;end; end else f:=1; //если форма еще не создана, то создаем ее if f<>1 then Tform_prihod.Create(Application); end; |
Далее создаем Data Module, в нем мы будем создавать подключения к таблице прихода.
File->New->Form –Other…
Delphi Files-> Data Module
В инспекторе объектов устанавливаем для него следующие свойства
Name -> dm;
Сохраните модуль с именем unit_dm.
Пропишем Uses general, prihod; после раздела implementation в программном модуле unit_dm.
Пропишем Uses general, unit_dm; после раздела implementation в программном модуле unit prihod.
Далее из панели компонентов dbGo (ADO) размещаем на форме компоненты TADOTable и TADOQuery.
В инспекторе объектов для TADOQueryв свойствоNameзаписываем ADOQuery_delete,
Connection устанавливаем -> form_general.ADOConnection1.
В инспекторе объектов ADOTable1 в свойство Name записываем table_prihod,
Connection устанавливаем -> form_general.ADOConnection1
TableName-> prihod,
Active-> True;
Из вкладки Data Accessпомещаем на форму компонент TDataSource.
В инспекторе объектов свойство Nameзаписываем prihod,
DataSet->table_prihod;
На формеПриходдляDBGrid1в инспекторе объектов свойство DataSource-> dm.prihod,а свойство Options->dgRowSelect->True.
После этого в DBGrid1 должны отобразиться поля таблицы table_prihod.
Переходим в DataModule (unit_dm)выбираем table_prihodи в структуре (Structure) -> prihod -> Fields -> щелкнем правой кнопкой мыши и выберем Add all fields.
должно получиться следующее:
Далее выбираем поле id и в инспекторе объектов устанавливаем у него свойство Visible->False.
Для поля id_postav_ik устанавливаем свойство Visible->False.
Для поля number_docum
DisplayLabel -> Номер документа;
DisplayWidth -> 15;
Для поля date_prihoda
DisplayLabel -> Дата прихода;
DisplayWidth -> 18;
Для поля sum
DisplayFormat->.##
DisplayLabel -> Сумма;
DisplayWidth -> 10;