
- •Методология объектно-ориентированного программирования
- •Проектирование интерфейса пользователя
- •Корректность ввода данных
- •Разработка аис с использованием среды Delphi
- •Разработка главной формы
- •Установка связи с бд
- •Создание справочника поставщиков
- •Создание справочника клиентов
- •Поле dbEdit и кнопки управления
- •«Справочник Комбинат»
- •Кнопки (изменить, Сохранить, Закрыть)
- •Создаем пиктограммы в главной форме
- •Сортировка записей таблицы
- •Создание вычисляемых полей
- •Поиск данных по содержимому
- •Сложные формы
- •Справочник сырья
- •Создание кнопки «Пересчет»
- •Создание журнала «изготовление товара и сырья»
- •Создание журнала продаж
- •Создание связи один ко многим в форме
- •Создание связанного списка в dbGrid
- •Сложные запросы
Поле dbEdit и кнопки управления
Создать справочник комбината, отображающий сведения о предприятии с возможностью внесения изменения данных в поля таблицы
File -> new -> form
Save as UnitKombinat
Caption: Справочник комбината
Name: FormKombinat
FormStyle: MDIChild
Position: PostOnly
Вызвать справочник из меню главной формы:
Caption: Kombinat
Application.CreateForm(TFormKombinat,formKombinat);
Справочник комбината
Events -> OnClose -> FormClose
Убрать автозапуск: project -> option
Begin
Action:=cafree;
End;
Создать интерфейс формы
С вкладки DataControls -> DBEdit
Перед расположением элементов необходимо в модуль UnitBD добавить компоненты связи с базой данных «DataBD»
ADO -> ADOtable
Name: ADOZavod
Connection -> ADOKombinat
Table name -> director
Active -> true
Data Access -> data source (перенос в «Data BD»)
Name -> DataZavod
«Справочник Комбинат»
File -> UseUnit -> UseBD
DBEdit свойства
Data source -> DataBD.DataZavod
Data Field -> name
Создать пять окон (name, adress, telephone, mail)
Кнопки (изменить, Сохранить, Закрыть)
DBEdit.SetFocus; - изменить
If DateBD.ADOZavod.Modified then DateBD.ADOZavod.Post – сохранить
Close; - закрыть
Пример 2: в справочнике поставщиков создаем вместо навигатора кнопки управления (первая, последняя, следующая, предыдущая, добавить, отменить, удалить, сохранить)
DateBD.ADOPostavchik.FindFirst;
DateBD.ADOPostavchik.FindLast;
DateBD.ADOPostavchik.FindNext;
DateBD.ADOPostavchik.FindPrior;
DateBD.ADOPostavchik.Append; DBGrid1.SetFocus
DateBD.ADOPostavchik.Cancel;
If DateBD.ADOPostavchik.Eof then abort; if messagebox(0,’Вы хотите удалить данную запись? ‘,’Запрос на удаление’,33)=1 then DateBD.ADOPostavchik.Delete
DateBD.ADOPostavchik.Post
Сделать те же кнопки в справочнике клиентов
Создаем пиктограммы в главной форме
Переходим в главную форму и с вкладки WIN выбираем элемент Imagelist
Дважды щелкаем по Image и в левом углу добавляем иконки 12х12.
В каждом подпункте меню в графе свойств Image выбираем нужную иконку.
Сортировка записей таблицы
Для сортировки записей используют index, field name - строковое значение имена поля, которое можно изменить программно.
Пример:
Создать в справочнике клиентов (поставщиков) две кнопки, которые будут производить сортировку по фамилии и по адресу. Для этого располагаем на форме
Label сортировка записей
Buttom1 по фамилии
Buttom2 по адресу
Обработка кнопок
datebd.adopostavhik.indexfieldnames:=’fam’;
datebd.adopostavhik.indexfieldnames:=’address’;
Создание вычисляемых полей
в редакторе полей имеется возможность создания новых полей, которые формируют свои значения на основе значений реально существующих вычисляемых полей. Значения данных полей могут сохранятся в БД, но также могут просто отображаться на форме или отчете.
Пример:
Создать вычисляемое поле, выводящее в одной строке фамилию, имя, отчество.
Для этого откроем редактор полей
DateBD -> ADOPostavhik
Вызвать контекстное меню (правой кнопкой) -
В окне новое поле заполнить две рамки:
Name - kod name
Size - 50
Type - string
Field type – calculated
Ok
Для организации работы вычисляемого поля необходимо создать обработчик компонента adoPostavhik (метод) - onCaleField . Для этого выделить компонент adopostavhik и на вкладке events 2щелкнуть по onCaleField.
begin
Adopostavchikodname.value:=adopostavchikfam.value+’ ’+ adopostavchikname.value+’ ’+ adopostavchikotch.value;
Для отображения вычисляемого поля добавить на форму label
В обработке кнопки вывод дописать команду:
Label5.caption:=datebd.adopostavchikkodname.value;