Торговая фирма

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

e=new.supp_name, good_id=:my_id, city_id=:my_city_id where id=:my_supp_id;

 

Триггер на удаление

 

CREATE TRIGGER "DEL_FOR_VIEW" FOR "SUPP_GOODS" BEFORE DELETE POSITION 0variable my_id integer;variable my_s_id integer;from suppliers where old.supp_name=name;id from goods where old.good_name=name into my_id;count(*) from suppliers where good_id=:my_id into my_s_id;(:my_s_id = 0)delete from goods where id=:my_id;

end

 

Триггеры для представления Склад - Город

Триггер на вставку

 

CREATE TRIGGER "ST_W_C_INS" FOR "STORAGE_WITH_CITY" BEFORE INSERT POSITION 0variable my_id integer;variable my_city_id integer;id from cities where new.city_name = name into :my_city_id;(:my_city_id is null)begininto cities(name) values(new.city_name);id from cities where new.city_name = name into :my_city_id;into storeage(addres,city_id,telephone) values(new.address,:my_city_id,new.telephone);

 

Триггер на обновление

 

CREATE TRIGGER "ST_W_C_UPD" FOR "STORAGE_WITH_CITY" BEFORE UPDATE POSITION 0variable my_city_id integer;variable my_id integer;id from cities where name=new.city_name into my_city_id;(:my_city_id is null) then exception wrong_city;id from storeage where addres=old.address and telephone=old.telephone into my_id;set addres=new.address, city_id=:my_city_id, telephone=new.telephone where id=:my_id;

 

Триггер на удаление

 

CREATE TRIGGER "ST_W_C_DEL" FOR "STORAGE_WITH_CITY" BEFORE DELETE POSITION 0from storeage where addres=old.address and telephone=old.telephone;

end

 

3.Реализация клиентской части

 

3.1 Разработка спецификаций

 

Как следует из задания, клиентское приложение должно обеспечивать следующие функции:

1.Вести учет товаров, позволять редактировать существующую базу товаров, добавлять новые.

2.Вести учет поставщиков, позволять добавлять новых и менять данные уже существующих поставщиков.

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

.Предоставлять доступ к списку складов, позволять добавлять и редактировать уже существующие.

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

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

.Предоставлять справки

 

3.2 Описание интерфейса пользователя

 

Ведение учета товаров реализовано с помощью стандартных компонентов C++ Builder. Для отображения таблиц на экране и работы с ними используются компоненты TDBGridи TDBNavigator. Для доступа к базе данных используются стандартные компоненты TTable, TDataSourceи TDatabase. Внешний вид вкладки для учета товаров показан на рисунке 7.

 

Рисунок 7 - Интерфейс вкладки "Товары"

 

Для учета поставщиков было создано представление и реализованы триггеры для основных операций: вставка, обновление и удаление. Это позволило осуществить доступ к базе данных с помощью тех же компонентов, что и в случае со вкладкой Товары. Также были использованны компоненты TDNLookupComboBox, которые позволяют выбрать существующий город и товар, что позволяет избавить пользователя от необходимости ручного ввода и ошибок связанных с ним. Внешний вид вкладки учета поставщиков показан на рисунке 8.

 

Рисунок 8 - Интерфейс вкладка "Поставщики"

 

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

 

Рисунок 9 - Интерфейс вкладки "Города"

 

Для реализации интерфейса работы со списком складов, а также с товарами на складе были применены некоторые дополнительные компоненты C++ Builder, такие как TQueryиTChart.

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

Работа с вкладкой товаров, а то есть добавление, удаление и выборка данных реализована с помощью компонента TQuery. Для выборки необходимо знать код_склада из которого мы хотим выбрать товары, поэтому запрос на выборку имеет параметры, позволяющие нам получить лишь нужные товары. локальный сервер интерфейсе программа

Для добавления используется компонент TQueryс 4 параметрами, полученными в диалоговом окне добавления товара на склад.

Внешний вид вкладки учета складов и товаров показан на рисунке 10.

 

 

Интерфейс вкладки Заявки реализован с помощью собственных SQL-запросов (через компонент TQuery)и обработчиков. Таким образом на вкладке было использовано два компонента ComboBox, позволяющих выбирать тип заявки и ее статус. Обработчики на изменение этих полей перезагружают таблицу заявок, таким образом, мы всегда видим нужные нам заявки. На данной вкладке можно добавить новую заявку для поставщика, а также принять или отклонить пришедшую. В этом случае открывается окно диалога, предлагающее нам выбрать склад, на который будет отгружен товар. Особенность SQL-запроса в том, что выборка из предлагаемых целевых складов содержит лишь те склады, на которых данный товар может храниться, при условии, что на нем хватает места. Таким образом, не может возникнуть ситуации с переполнением склада. Следует такж?/p>