
- •Методология объектно-ориентированного программирования
- •Проектирование интерфейса пользователя
- •Корректность ввода данных
- •Разработка аис с использованием среды Delphi
- •Разработка главной формы
- •Установка связи с бд
- •Создание справочника поставщиков
- •Создание справочника клиентов
- •Поле dbEdit и кнопки управления
- •«Справочник Комбинат»
- •Кнопки (изменить, Сохранить, Закрыть)
- •Создаем пиктограммы в главной форме
- •Сортировка записей таблицы
- •Создание вычисляемых полей
- •Поиск данных по содержимому
- •Сложные формы
- •Справочник сырья
- •Создание кнопки «Пересчет»
- •Создание журнала «изготовление товара и сырья»
- •Создание журнала продаж
- •Создание связи один ко многим в форме
- •Создание связанного списка в dbGrid
- •Сложные запросы
Поиск данных по содержимому
Для поиска данных в таблице БД в простейшем случае используется метод фильтрации записи.
Пример:
В форму справочник поставщиков добавить в поле ввода критерий поиска и кнопку
Панель (поиск)
Text box
Label поиск
Edit1
Buttom1 по фамилии
Buttom2 по адресу
Buttom3 сброс
Обрабатываем кнопки:
Кнопка по фамилии:
begin
If length(edit1.text)>0 then
Datebd.adopostavchik.filtered:=true
Else datebd.adopostavchik.filtered:=false;
Datebd.adopostavchik.filter:=’fam=’’’+edit1.text+’’’’;
End;
Кнопка по адресу:
Begin
If length(edit1.text)>0 then
Datebd.adopostavchik.filtered:=true
Else dateb.adopostavchik.filtered:=false;
Datebd.adopostavchik.filter:=’address=’’’+edit1.text+’’’’;
End;
Кнопка Сброс:
datebd.adopostavhik.filtered:=false;
edt1.text:='';
edt2.text:='';
edt3.text:='';
Примечание:
На практике для поиска записей при помощи фильтрации создается отдельная форма поиска, которая вызывается из формы, где производится поиск.
Сохранить
Unitpostpoisk
Form style - mdi child
Caption - поиск
Name - formpostpoisk
Position - top center
Project – option вправо
Cafree;
В справочник поставщиков добавляем кнопку поиск
Application.createform(TFormpostpoisk, formpostpoisk))
Use unit
Label по фамилии
Label по имени
Label по адресу
Label по отчеству
Добавляем 4 Edit и 6 Buttom (3*поиск, сброс, закрыть)
Textbox edit
Сложные формы
В БД «комбинат» таблица «товар» является дочерней по отношению к таблице «вид товара»
Поэтому при создании формы «справочник товаров» необходимо учитывать данное условие. То есть при заполнении таблицы «Товар» будет происходить только при наличии заполненной связи kod (id_vid). Такое заполнение можно организовать при помощи раскрывающегося списка dblookupcombobox
Пример: создать сложную форму справочника товаров.
Создаем новую форму.
Save as unittovar.
Caption – справочник товаров
Name FormTovar
FormStyle MDIChild
Position DefaultPosOnly
Project -> option перевести вправо
Use unit -> unit bd
Events -> OnClose -> FormClose -> action:=caFree;
Вызвать данный справочник из пункта главного меню
Заходим в главную форму, меню, справочник товаров.
В модуль DateBD располагаем компоненты связи с таблицами Товар и вид товара
Для таблицы товар:
ADOTable свойства:
Name ADOTovar
Connection ADOCombinat
Tablename – Tovar
Active – true
DateSource свойства:
Name DateTovar
DataSet ADOTovar
Для таблицы Вид товара:
ADOTable свойства:
Name ADOVidTovar
Connection ADOCombinat
Tablename – Vid_Tovar
Active – true
DateSource свойства:
Name DateVidTovar
DataSet ADOVidTovar
Отредактировать поля вывода в компоненте ADOTovar -> щелкнуть два раза -> добаляем все поля. Все ключевые поля – невидимы (visible –false).
Поле name:
DisplayLabel – наименование
DisplayWhit - 15
Поле EdIzm:
DisplayLabel – единица измерения
DisplayWhit – 15
Поле PriceStat:
DisplayLabel – начальная цена
DisplayWhit - 19
Carrency – true
Поле Priceitog:
DisplayLabel – итоговая цена
DisplayWhit - 19
Carrency – true
Поле Nal (логическое):
DisplayLabel – наличие
DisplayValues – да;нет
Добавить в таблицу Товар поле Наличие
Создаем интерфейс справочнику товаров
Вид товара: [dblookupcombobox]
DBGrid
Кнопки: Добавить, Сохранить, Удалить, Поиск, Закрыть.
BDGrid DataSource -> DateTovar
Dblookupcombobox свойства:
ListSource – DateBD.DateVidTovar (таблица из которой берут сведения)
ListField – name (поле из таблицы, которое отобразится в списке)
KeyField – id
DataSource – DateBD.DateTovar (таблица, куда заносят товар)
DataField - id_vid (заполняемое поле)
DropDownRod – количество строк в открывающемся списке
Если поле таблицы базы данных имеет ограниченное количество значений, для их ввода и отображения удобно использовать раскрывающейся список.
В таблице товаров есть ограниченный список – единицы измерения. Для создания списка раскрывающегося списка в таблице DBGrid надо:
Вызвать контекстное меню таблицы DBGrid (правая кнопка мыши) и выбрать первую команду (редактор столбцов).
Вызвать контекстное меню редактора и добавить все поля (add all).
Ключевые поля переопределить в невидимые.
Выделить поле Единицы измерения и в свойстве PickList прописать строки раскрывающегося списка. OK
Кнопка добавить должна вызвать дополнительную форму «Новые записи»
Выполняем стандартный набор действий, свойств
UnitTovarDob
FormTovarDob
label наименование DBEdit1
label единица измерения DBComboBox
label цена начальная DBEdit2
label цена итоговая DBedit3
DBCheckBox
DBEdit1 DataSource – DateTovar
DataField – name
DBComboBox DataSource – DateTovar
DateField – ed_izm
Items – 2 щелчка – вписать вручную
Style – DropDownList
DBEdit2 DataSource – DateTovar
DataField – price_start
DBCheckBox свойства:
DataSource – DataTovar
DataField – nal
Alignvent – можно выбрать
Caption – Наличие
Вкладка additional – bitbtn
Kind – bkclose
Доработать кнопку добавить на форме Справочник товаров
DataBD.ADOTovar .Append;
application.CreateForm(TFormTovarDob, FormTovarDob);
DBGrid.SetFocus;
Кнопка сохранить
DateBD.ADOTovar.Post;
Кнопка удалить
If Application.messagebox(Pchar (‘вы действительно…?’), ‘внимание!!!’,MB_OkCancel)=id_ok then datebd.adOTovar.delete;
Обработка кнопки поиск
Кнопка поиск вызывает дополнительное окно «поиск записей»