
- •Методология объектно-ориентированного программирования
- •Проектирование интерфейса пользователя
- •Корректность ввода данных
- •Разработка аис с использованием среды Delphi
- •Разработка главной формы
- •Установка связи с бд
- •Создание справочника поставщиков
- •Создание справочника клиентов
- •Поле dbEdit и кнопки управления
- •«Справочник Комбинат»
- •Кнопки (изменить, Сохранить, Закрыть)
- •Создаем пиктограммы в главной форме
- •Сортировка записей таблицы
- •Создание вычисляемых полей
- •Поиск данных по содержимому
- •Сложные формы
- •Справочник сырья
- •Создание кнопки «Пересчет»
- •Создание журнала «изготовление товара и сырья»
- •Создание журнала продаж
- •Создание связи один ко многим в форме
- •Создание связанного списка в dbGrid
- •Сложные запросы
Создание связанного списка в dbGrid
При необходимости можно создать раскрывающийся список в DBGrid, который будет отображать сведения из родительской таблицы по отношению к таблице, отображаемой в DBGrid (аналогично dblookupcombobox). Для этого используются lookup поля. Такое поле хранит в себе текстовое значение из родительской таблицы, а в дочернюю таблицу передается значение ключевого поля родительской таблицы.
Для создания lookup поля создаем новое поле в дочерней таблице. Переходим в DateBD. В модуле DateBD выделить компонент ADOSirye_3 и в редакторе добавить новое поле.
Name - vidsirye
Component – adosirye_3surie
Type - stringLookup – галочка
Key field – id_vid
Adosiryevid_3
Id_vid_sur
Name
И переименовываем в displaylabel – вид сырья
SQL-запросы
Большинство систем управления БД позволяют произвести выборку нужной информации путем выполнения запросов. Для выполнения операции над данными с помощью оператора языка SQL предназначен компонент ADOQuery. Данный компонент позволяет получить в виде набора записей данные из нескольких таблиц. Данные, отображаемые через ADOQuery, нельзя редактировать.
Основные свойства ADOQuery:
Active
Params – другой параметр
SQL – текст простейшего запроса
RequestLive – создание «живого» запроса
Основные методы ADOQuery:
Open – открытие
Close - закрытие
Refresh – обновление данных
ExecSQL
В общем виде запрос на выборку из таблиц данных выглядит так:
Select список полей
From таблица (таблицы)
Where (критерий)
Order by список полей
Пример: Создать форму, содержащую таблицу DBGrid, которая содержит сведения о поставщиках, его поставках сырья. Поиск производится по введенной фамилии.
Создать форму
Unit OtborPostavki
Formstyle
Caption
Name
Onclose
Position
Project – option
Добавляем в главное меню
Правее журналов – Поиск
да
Для организации запроса в модуль DateBD добавить компонент ADOQuery, для общей видимости запроса.
Установить свойства:
Name - ADOQueryPostavka
Connection – kombinat
Data source – adopostavchik
Sql - … - select*from postavchik – ok
Active – true
DataSource:
Name – adoquerypostavka
Dataset – adoquerypostavka
Интерфейс
DBGrid1
Datasource – ADOQueryPostavka
Edit1
Buttom «Поиск по фамилии» «Сброс» «Закрыть»
Для правильной организации SQL-запроса необходимо ориентироваться на схему Базы Данных.
Обработка кнопки «Поиск по фамилии»:
DateBD.ADOQueryPostavka.Active:=false;
DateBD.ADOQueryPostavka.SQL.Clear;
DateBD.ADOQueryPostavka.SQL.Add (‘select postavchik.fam, postavchik.name, surie.name, postavka.data_post, postavka.kolvo’);
dateBD.ADOQueryPostavka.SQL.Add (‘from postavchik, sirye, postavka’);
DateBD.ADOQueryPostavka.SQL.Add (‘where postavchik.id_post=postavka.id_post and postavka.id_sur=sirye.id_sur and postavchik.fam like ‘’’+edit1.text+’’’’);
dateBD.ADOQueryPostavka.Active:=true;
Кнопка сброса:
Копируем кнопку поиска и удаляем в скобках все, кроме первого слова, и строчку where удалить from postavchik
DateBD.ADOQueryPostavka.Active:=false;
DateBD.ADOQueryPostavka.SQL.Clear;
DateBD.ADOQueryPostavka.SQL.Add (‘select’);
dateBD.ADOQueryPostavka.SQL.Add (‘from postavchik’);
dateBD.ADOQueryPostavka.Active:=true;