- •Оглавление
- •Введение
- •I аналитическая часть
- •Технико-экономическая характеристика предметной области и предприятия. Анализ деятельности «как есть»
- •Характеристика предприятия и его деятельности
- •Организационная структура управления предприятием
- •Информационная и техническая архитектура ис предприятия
- •Характеристика комплекса задач, задачи и обоснование необходимости автоматизации
- •Определение места проектируемой задачи в комплексе задач и ее описание
- •Обоснование необходимости использования вычислительной техники для решения задачи
- •Анализ системы обеспечения информационной безопасности и защиты информации
- •Анализ существующих разработок и выбор стратегии автоматизации «как должно быть»
- •Анализ существующих разработок для автоматизации задачи
- •Выбор и обоснование стратегии автоматизации задачи
- •Выбор и обоснование способа приобретения ис для автоматизации задачи
- •Обоснование проектных решений
- •Обоснование проектных решений по техническому обеспечению
- •Обоснование проектных решений по информационному обеспечению
- •Обоснование проектных решений по программному обеспечению
- •II проектная часть
- •Разработка проекта автоматизации
- •Этапы жизненного цикла проекта автоматизации
- •Ожидаемые риски на этапах жизненного цикла и их описание
- •Организационно-правовые и программно-аппаратные средства обеспечения информационной безопасности и защиты информации
- •Информационное обеспечение задачи
- •Информационная модель и её описание
- •Используемые классификаторы и системы кодирования
- •Характеристика нормативно-справочной, входной и оперативной информации
- •Характеристика результатной информации
- •Формализация расчётов показателей
- •Программное обеспечение задачи
- •Общие положения (дерево функций и сценарий диалога)
- •Описание программных модулей и структурная схема пакета
- •Алгоритмы обработки данных
- •Контрольный пример реализации проекта и его описание
-
Алгоритмы обработки данных
Дпя обрабоки данных, хранящихся в таблицах Access, используются запросы, написанные на языке SQL
SQL – это легкий для понимания язык и в то же время универсальное программное средство управления данными. Успех языку SQL принесли следующие его особенности:
-
независимость от конкретных СУБД;
-
переносимость с одной вычислительной системы на другую;
-
наличие стандартов;
-
поддержка со стороны компании Microsoft (протокол ODBC);
-
реляционная основа;
-
высокоуровневая структура;
-
возможность выполнения специальных интерактивных запросов;
-
обеспечение программного доступа к базам данных;
-
возможность различного представления данных;
-
полноценность как языка, предназначенного для работы с базами данных;
-
возможность динамического определения данных;
-
поддержка архитектуры клиент/сервер.[12]
Все перечисленные выше факторы явились причиной того, что SQL стал стандартным инструментом для управления данными на персональных компьютерах, мини-компьютерах и больших ЭВМ.
Перечислим основные запросы, использованные в данной программе.
Для определения прихода и расхода металлов используеися запрос ADOQueryOSTATOK:
SELECT
(SUM(ПокупкаМеталл.Вес*ПокупкаМеталл.Колличество)-SUM(ЗаказМеталлМастерской.Вес))
FROM
Металл, ПокупкаМеталл, ЗаказМеталлМастерской
WHERE
ПокупкаМеталл.Металл=Металл.Металл AND
ПокупкаМеталл.Проба= Металл.Проба AND
ЗаказМеталлМастерской.Проба= Металл.Проба AND
ЗаказМеталлМастерской.Металл=Металл.Металл AND
Металл.Металл Like M AND
Металл.Проба Like P
GROUP BY Металл.Металл, Металл.Проба, Металл.Цена
Запрос ADOQuerySumKvit используется для определения суммы квитанции при покупке металлов у населения:
SELECT
SUM(Колличество*Вес*ЦенаЗаГрамм)
FROM
ПокупкаМеталл
WHERE
КодКвитанции=:KODITOG
Запрос ADOQueryPostavkaKam используется для определения суммы поставки драгоценных камней:
SELECT
Поставка.НомерПоставки, Поставщик, ДатаПоставки, SUM(Количество*Цена)
FROM
Поставка, ПоставкаКамни
WHERE
Поставщик=:POST AND
Поставка.НомерПоставки=ПоставкаКамни.НомерПоставки
GROUP BY Поставка.НомерПоставки, Поставщик, ДатаПоставки
Запрос ADOQuerySUMzakaz разработан для определения суммы заказа:
SELECT
SUM(ЗаказИзделие.ЦенаИзделия)
FROM
Заказ, ЗаказИзделие
WHERE
Заказ.НомерЗаказа=ЗаказИзделие.НомерЗаказа AND
Заказ.НомерЗаказа Like Z
GROUP BY
Заказ.НомерЗаказа
Запрос ADOQueryVesMetMASTER разработан для определения веса металлов, добавленных мастерской для изготовления изделия, с пересчетом на лигатуру:
SELECT
SUM((ЗаказМеталлМастерской.Вес/Модель.Проба)*ЗаказМеталлМастерской.Проба)
FROM
ЗаказМеталлМастерской, ЗаказИзделие, Модель
WHERE
ЗаказМеталлМастерской.НомерЗаказа=ЗаказИзделие.НомерЗаказа AND
ЗаказМеталлМастерской.АртикулМодели=ЗаказИзделие.АртикулМодели AND
ЗаказМеталлМастерской.РазмерДлина=ЗаказИзделие.РазмерДлина AND
ЗаказИзделие.АртикулМодели=Модель.АртикулМодели AND
ЗаказМеталлМастерской.НомерЗаказа Like N AND
ЗаказМеталлМастерской.АртикулМодели Like ART AND
ЗаказМеталлМастерской.РазмерДлина Like R
GROUP BY ЗаказИзделие.НомерЗаказа , ЗаказИзделие.АртикулМодели , ЗаказИзделие.РазмерДлина
Аналогичным образом производится расчет суммы металлов, сданных клиентом для изготовления изделия, с пересчетом на лигатуру:
SELECT
SUM((ЗаказМеталлКлиента.Вес/Модель.Проба)*ЗаказМеталлКлиента.Проба)
FROM
ЗаказМеталлКлиента, ЗаказИзделие, Модель
WHERE
ЗаказМеталлКлиента.НомерЗаказа=ЗаказИзделие.НомерЗаказа AND
ЗаказМеталлКлиента.АрттикулМодели=ЗаказИзделие.АртикулМодели AND
ЗаказМеталлКлиента.РазмерДлина=ЗаказИзделие.РазмерДлина AND
ЗаказИзделие.АртикулМодели=Модель.АртикулМодели AND
ЗаказМеталлКлиента.НомерЗаказа Like N AND
ЗаказМеталлКлиента.АрттикулМодели Like ART AND
ЗаказМеталлКлиента.РазмерДлина Like R
GROUP BY ЗаказИзделие.НомерЗаказа , ЗаказИзделие.АртикулМодели , ЗаказИзделие.РазмерДлина
Для определения расхода драгоценных камней, используется запрос ADOQueryKamRashod:
SELECT Камень.Камень, Камень.Форма, Камень.Цвет, Камень.Размер,
Sum(ЗаказИзделие.Количество*МодельКамни.Количество)
FROM Камень INNER JOIN
((Модель INNER JOIN
(Заказ INNER JOIN
ЗаказИзделие ON
Заказ.НомерЗаказа = ЗаказИзделие.НомерЗаказа) ON
Модель.АртикулМодели = ЗаказИзделие.АртикулМодели) INNER JOIN
МодельКамни ON
Модель.АртикулМодели = МодельКамни.АртикулМодели)
ON (Камень.Размер = МодельКамни.Размер) AND (Камень.Цвет = МодельКамни.Цвет) AND
(Камень.Форма = МодельКамни.Форма) AND (Камень.Камень = МодельКамни.Камень)
WHERE (((Заказ.Анулировать)=No) AND ((Заказ.Выдан)=Yes)) AND
Камень.Камень Like KAM AND
Камень.Форма Like FORMA AND
Камень.Цвет Like CVET AND
Камень.Размер Like RAZ
GROUP BY Камень.Камень, Камень.Форма, Камень.Цвет, Камень.Размер;