Загрузка данных


На основании анализа брифинга и документов заказчика (заказ покупателя, спецификация продукции, расчет стоимости и производство) была спроектирована ER-диаграмма информационной системы учета заказов, производства и себестоимости продукции представлена на рисунке 4.
При проектировании базы данных обеспечена третья нормальная форма (3НФ), исключающая избыточность данных и обеспечивающая логическую целостность структуры. Все сущности имеют первичные ключи (PK), а связи реализованы через внешние ключи (FK) с обеспечением ссылочной целостности. 
В системе выделены следующие основные сущности.
Сущность «Материал» содержит информацию о используемых материалах. Первичным ключом является поле «КодМатериала». Также сущность включает атрибуты «НаименованиеМатериала», «КодЕдиницы» (внешний ключ на таблицу «Единицы измерения») и «СтоимостьЗаЕдиницу».
Сущность «Единицы измерения» предназначена для хранения справочника единиц измерения. Первичный ключ — «КодЕдиницы», дополнительный атрибут — «НаименованиеЕдиницы».
Сущность «Номенклатура» описывает продукцию предприятия. Первичный ключ — «КодНоменклатуры». Содержит атрибуты «Наименование» и «КодЕдиницы» (FK), связывающий запись с таблицей единиц измерения.
Сущность «Цена» хранит информацию о ценах на продукцию. Первичный ключ — «КодЦены». Внешний ключ «КодНоменклатуры» указывает на соответствующую позицию номенклатуры. Атрибут «Цена» отражает стоимость.
Сущность «Спецификация» определяет состав продукции. Первичный ключ — «КодСпецификации». Содержит внешние ключи «КодПродукции» (ссылка на «Номенклатура») и «КодМатериала» (ссылка на «Материал»), а также атрибут «НормаРасхода».
Сущность «Производство» отражает процесс выпуска продукции. Первичный ключ — «КодПроизводства». Внешний ключ «КодНоменклатуры» связывает запись с производимой продукцией. Атрибут «Количество» указывает объем выпуска.
Сущность «СоставПроизводства» детализирует использование материалов в производстве. Первичный ключ — «КодЗаписи». Включает внешние ключи «КодПроизводства» и «КодМатериала», а также атрибут «Количество».
Сущность «Контрагенты» содержит информацию о клиентах и исполнителях. Первичный ключ — «КодКонтрагента». Атрибуты включают «Наименование», «ИНН», «Адрес» и «Телефон».
Сущность «ЗаказПокупателя» отражает заказы клиентов. Первичный ключ — «КодЗаказа». Содержит внешние ключи «КодЗаказчика» и «КодИсполнителя», которые ссылаются на сущность «Контрагенты». Дополнительные атрибуты — «ДатаЗаказа» и «ИтогСумма».
Сущность «СоставЗаказа» описывает состав заказа. Первичный ключ — «КодПозиции». Содержит внешние ключи «КодЗаказа» (ссылка на «ЗаказПокупателя») и «КодНоменклатуры» (ссылка на «Номенклатура»). Атрибуты включают «Количество», «Цена» и «Сумма».
Связи между сущностями имеют следующие типы. Между сущностями «Номенклатура» и «Цена», «Номенклатура» и «Спецификация», «Номенклатура» и «Производство», а также «Номенклатура» и «СоставЗаказа» реализованы связи типа «один ко многим», так как одной записи номенклатуры может соответствовать несколько записей в связанных таблицах.
Между сущностями «Материал» и «Спецификация», а также «Материал» и «СоставПроизводства» также установлены связи «один ко многим».
Связь между «Производство» и «СоставПроизводства» является связью «один ко многим», поскольку одно производство может включать несколько записей о расходе материалов.
Связь между «ЗаказПокупателя» и «СоставЗаказа» — «один ко многим», так как один заказ может содержать несколько позиций.
Сущность «Контрагенты» связана с сущностью «ЗаказПокупателя» двумя связями типа «один ко многим» (в роли заказчика и исполнителя).
Таким образом, ERD-диаграмма отражает логическую структуру базы данных, где центральными сущностями являются «Номенклатура» и «ЗаказПокупателя», обеспечивающие взаимосвязь процессов производства, учета материалов и оформления заказов.

Задание 4.
Создайте модуль программного обеспечения, который позволит анализировать информацию из созданной базы данных.
Макет окна представлен на рисунке 3. 
Подключите к приложению созданную базу данных и реализуйте следующий функционал:
сортировку данных по выбранному полю. Пользователь выбирает поле для сортировки, после включения переключателя варианта сортировки должна происходить сортировка данных в таблице. 
фильтрацию записей в таблице по клиенту. Пользователь выбирает из списка клиента и по нажатию кнопки «Фильтровать» должна происходить фильтрация данных в таблице, т. е. отображаться заказы выбранного клиента. По нажатию на кнопку «Показать все» отменяется фильтрация записей.
поиск данных. Пользователь вводит строку поиска и по нажатию кнопки «Найти» должны выделяться цветом ячейки, в которых нашлось совпадение со строкой поиска. 
для каждой выборки должно отображаться всего заказов и общая сумма заказов.



Рисунок 3 – Макет окна работы с бронированием номеров

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