Создание связи один ко многим в форме — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Создание связи один ко многим в форме

2022-12-30 31
Создание связи один ко многим в форме 0.00 из 5.00 0 оценок
Заказать работу

В качестве примера использования связи один ко многим создадим форму, которая позволяет по выделенному поставщику найти его поставки. По выделенной поставке увидеть наименование сырья по данной записи.

Технология выполнения:

1) Данная форма будет отображать сведения из четырех таблиц (поставщик. Поставки, сырье, вид сырья).

2) В модуль 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

Редактируем поля в компонентах АДО. При редактировании полей внешние ключи остались видимыми

3) Создаем форму

UnitPostavka

Caption – Журнал учета поставки сырья

Position – posonly

Name – поставка сырья

Form – FormPostavka

Formstyle

Project option

Onclose

4) На форме отобразить трри элемента DBGrid, отображающие «поставщики», «поставки сырья», «сырье»

5) Для организации связи между таблицами DBGrid на форме необходимо выйти в модуль DateBD и для родительских таблиц установить свойства:

ADOPostavka_3:

Master source – datapostavchik_3

Master fields - … - в появившемся окне выделить слева и справа поля id_post – добавить – ok

ADOSirye_3:

Master source – datapostavka_3

Master fields – id_sur

 

Создание связанного списка в 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, которая содержит сведения о поставщиках, его поставках сырья. Поиск производится по введенной фамилии.

1) Создать форму

Unit OtborPostavki

Formstyle

Caption

Name

Onclose

Position

Project – option

2) Добавляем в главное меню

Правее журналов – Поиск

да

3) Для организации запроса в модуль DateBD добавить компонент ADOQuery, для общей видимости запроса.

Установить свойства:

Name - ADOQueryPostavka

Connection – kombinat

Data source – adopostavchik

Sql - … - select*from postavchik – ok

Active – true

DataSource:

Name – adoquerypostavka

Dataset – adoquerypostavka

4) Интерфейс

DBGrid1

Datasource – ADOQueryPostavka

Edit1

Buttom «Поиск по фамилии» «Сброс» «Закрыть»

5) Для правильной организации SQL-запроса необходимо ориентироваться на схему Базы Данных.

6) Обработка кнопки «Поиск по фамилии»:

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;

7) Кнопка сброса:

Копируем кнопку поиска и удаляем в скобках все, кроме первого слова, и строчку 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;

 

Сложные запросы

Создать форму, содержащую списки поиска, позволяющие по выбранному наименованию сырья найти необходимую информацию о изготовлении из сырья товаров и продажи товара клиенту.

Создаем форму:

Unit – unitotbormain

Caption – сложные запросы

Name – formotbormain

Formstyle, position, onclose, project, use unit.

Добавляем форму в меню к запросам, «Сложные запросы».

Интерфейс:

Label поиск по товару dblookupcombobox1 buttom поиск buttom сброс

Label поиск по чырью dblookupcombobox2 buttom поиск buttom закрыть

--       --       --       --       --       --       --       --       --       --       --

                                                                     DBGrid

 

Dblookupcombobox1 свойства:         dblooupcombobox2 свойства:

List source – datatovar_2                       list source – datasyrie_1

List field – name                                        list field - name

Key fiekd – id_tov                                     key field – id_sur

Data source – prodaga                            data source - izgotovlenie

Data field – id_tov                                    data field – id_sur

 

Возвращаемся в меню, устанавливаем программным путем восстановление размеров формы при запуске. Для этого после строчки application…. Прописываем:

Formotbormain.height:=число;

Formotbormain.width:=число;

На форму добавить компоненты создания запросов.

AdOQuery:

Name – adoquerymain

Connection – kombinat

Datesource – prodaga

Sql – select*from prodaga

Active - true;

 

Date source:

Name – datequerymain

Data set – adoquerymain

 

Обработка кнопки «Поиск1»:

Formotbormain.height:=новоечисло;

Formotbormain.width:=новоечисло;

ADOQuerymain.Active:=falce;

ADOQuerymain.SQL.Clear;

ADOQuerymain.SQL.Add (‘select tovar.name, prodaga.data_prod, prodaga.kolvo, klient.fam’);

ADOQuerymain.SQL.Add (‘from Tovar, prodaga, klient’);

ADOQuerymain.SQL.Add (‘where Tovar.id_tov=prodaga.id_tov and klien.id_klient=prodaga.id_klient Tovar.name like ‘’’+dblookupcombobox1.text+’’’’);

ADOQuerymain.Active:=true;

 

Вывод запроса производим в dbgrid, раскрывающейся внизу

Dbrid data source – datequerymain

 

Обработка копки «Сброс»:

Formotbormain.height:=староечисло;

Formotbormain.width:=староечисло;

ADOQuerymain.Active:=falce;

ADOQuerymain.SQL.Clear;

ADOQuerymain.SQL.Add (‘select’);

ADOQuerymain.SQL.Add (‘from Tovar’);

ADOQuerymain.Active:=true;

 

Обработка кнопки «Поиск2»:

Formotbormain.height:=новоечисло;

Formotbormain.width:=новоечисло;

ADOQuerymain.Active:=falce;

ADOQuerymain.SQL.Clear;

ADOQuerymain.SQL.Add (‘select sirye.name, izgotovlenie.data_izg, izgotovlenie.kolvo, Tovar.name’);

ADOQuerymain.SQL.Add (‘from Tovar, sirye, izgotovlenie’);

ADOQuerymain.SQL.Add (‘where Tovar.id_tov=izgotovlenie.id_tov and sirye.id_sur=izgotovlenie.id_sur and sirye.name like ‘’’+dblookupcombobox2.text+’’’’);

ADOQuerymain.Active:=true;

 


Поделиться с друзьями:

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.026 с.