
- •Методология объектно-ориентированного программирования
- •Проектирование интерфейса пользователя
- •Корректность ввода данных
- •Разработка аис с использованием среды Delphi
- •Разработка главной формы
- •Установка связи с бд
- •Создание справочника поставщиков
- •Создание справочника клиентов
- •Поле dbEdit и кнопки управления
- •«Справочник Комбинат»
- •Кнопки (изменить, Сохранить, Закрыть)
- •Создаем пиктограммы в главной форме
- •Сортировка записей таблицы
- •Создание вычисляемых полей
- •Поиск данных по содержимому
- •Сложные формы
- •Справочник сырья
- •Создание кнопки «Пересчет»
- •Создание журнала «изготовление товара и сырья»
- •Создание журнала продаж
- •Создание связи один ко многим в форме
- •Создание связанного списка в dbGrid
- •Сложные запросы
Создание журнала продаж
Для базы данных комбинат создать журнал продажи товара, отражающий сведения о продаже товара определенному клиенту.
В компоненте datebd создать 4 пары компонентов связи
Для таблицы товара:
Adotable:
Name – adotovar_2
Conection – kombinat
Tablename - tovar
Active – true
Datasource:
Name – datatovar_2
Dataset – adotovar_2
Для таблицы вид товара:
Adotable:
Name – adovidtovar_2
Conection – kombinat
Tablename – vid_tovar
Active – true
Datasource:
Name – datavidtovar_2
Dataset – adovidtovar_2
Для таблицы продажи:
Adotable:
Name – adoprodaja
Conection – kombinat
Tablename - prodaja
Active – true
Datasource:
Name – dataprodaja
Dataset – adoprodaja
Для таблицы клиентов:
Adotable:
Name – adoclient_2
Conection – kombinat
Tablename - client
Active – true
Datasource:
Name – dataclient_2
Dataset – adoclient_2
Во всех компонентах ADOTable добавить поля в редакторе полей.
В компоненте ADOProdaja отредактировать вывод полей
Ключевые поля – невидимы, displaylabel,displaywidth, editmask.
Создать форму
Unitprodaja
Name - formProdaja
Caption – журнал продаж
Formstyle – MDIChild
Position – posonly
Events – onclose – action:=cafree;
Project – option – вправо
Useunit – unitbd
Добавить форму в главное меню
Создаем интерфейс:
Label вид товара dblookupcombobox1
Label товар dblookupcombobox2
Label клиент dblookupcombobox3
Dbgrid1
Buttoms добавить сохранить удалить закрыть
Dblookupcombobox1:
Listsource – adovidtovar_2
List field - name
Keyfield – id_vid_tovar
Dblookupcombobox2:
Listsource – adovtovar_2
List field - name
Keyfield – id_tovar
Data source – dataProdaja
Data field – id_tov
Dblookupcombobox3:
Listsource – adoclient_2
List field - name
Keyfield – id_client
Data source- dataProdaja
Data field – id_client
Сохранить:
Var pr, kol, sum:real;
Begin
Kol:=datebd.adoprodajakolvo.value;
Pr:=datebd.adotovar_2price_itog.value;
Sum:=kol*pr;
Datebd.adoprodaja.edit;
Datebd.adoprodajasumma_izgot.value:=sum;
Dateb.adoprodaja.post;
Удалить: самому прописать.
Создание связи один ко многим в форме
В качестве примера использования связи один ко многим создадим форму, которая позволяет по выделенному поставщику найти его поставки. По выделенной поставке увидеть наименование сырья по данной записи.
Технология выполнения:
Данная форма будет отображать сведения из четырех таблиц (поставщик. Поставки, сырье, вид сырья).
В модуль DateBD добавляем 4 пары элементов связи с БД.
Для таблицы Поставщик:
ADOTable:
Name ADOPostavchik_3
Connection – kombinat
Tablename – postavchik
Active – true
DataSource:
Name – DataPostavchik_3
DataSet – ADOPostavchik_3
ADOSirye_3 – DataSirye_3
ADOVidSirye_3 – DataVidSirye_3
ADOPostavka_3 – DataPostavka_3
Редактируем поля в компонентах АДО. При редактировании полей внешние ключи остались видимыми
Создаем форму
UnitPostavka
Caption – Журнал учета поставки сырья
Position – posonly
Name – поставка сырья
Form – FormPostavka
Formstyle
Project option
Onclose
На форме отобразить трри элемента DBGrid, отображающие «поставщики», «поставки сырья», «сырье»
Для организации связи между таблицами DBGrid на форме необходимо выйти в модуль DateBD и для родительских таблиц установить свойства:
ADOPostavka_3:
Master source – datapostavchik_3
Master fields - … - в появившемся окне выделить слева и справа поля id_post – добавить – ok
ADOSirye_3:
Master source – datapostavka_3
Master fields – id_sur