
- •Фгбоу впо «Пензенская государственнаятехнологическая академия» Разработка автоматизированной системы учета затрат на основное производство на предприятии «Луч»
- •Оценка проекта - ________
- •Р еферат
- •С одержание Введение 7
- •Введение
- •1. Предпроектный анализ объекта автоматизации
- •Описание существующей информационной системы
- •Описание информационных потоков и документов
- •1.3 Технико-экономический анализ создания аэис
- •1.3.1 Оценка затрат времени на обработку экономической информации.
- •2 Разработка концепции построения аэис
- •2.1 Состав автоматизированных рабочих мест аэис
- •2.2 Функции арм
- •2.3 Состав информационных потоков и носителей данных
- •2.4 Полномочия пользователей (арм) по работе с данными
- •Продолжение таблицы 2.5
- •По сравнению с неавтоматизированной обработкой данных должны произойти следующие изменения:
- •3 Разработка требований к аэис
- •3.1. Назначение системы.
- •3.2. Цели создания системы.
- •3.3 Характеристика объектов автоматизации.
- •3.4 Требования к системе
- •3.4.1 Требования к структуре и функционированию системы.
- •3.4.2 Требование к составу и квалификации персонала
- •3.4.7 Требования к эксплуатации
- •3.4.8 Требования к функциям (задачам), выполняемым системой
- •3.5 Требования к видам обеспечения
- •3.5.1 Требования к математическому обеспечению
- •3.5.2 Требования к информационному обеспечению
- •3.5.7 Требования к методическому обеспечению
- •3.6 Состав и содержаниие работ по созданию системы
- •Различия в значениях показателей связаны с неучтенными расходами на техническое обеспечение и обслуживание аэис.
- •4 Разработка информационного обеспечения аэис
- •5. Разработка пользовательских интерфейсов автоматизированных рабочих мест (арм) и отчетов
- •6. Разработка программного обеспечения арм
- •6.1 Методы и средства разработки программного обеспечения
- •Cостав и структура программного обеспечения (по) арм
- •Описание запросов и макросов.
- •Техническое обеспечение аэис
- •8. Руководство пользователя арм
- •8.1 Подготовка к работе
- •8.2 Описание операций
- •Продолжение таблицы 8.2
- •Продолжение таблицы 8.3
- •8.3 Аварийные ситуации
- •8.3.1 Восстановление поврежденной базы данных
- •8.3.2 Восстановление базы данных из резервной копии
- •Заключение
- •Перечень использованной литературы
- •Приложение а Спецификация
- •Автоматизированная система учета затрат на основное производство. Диаграмма потоков данных проектируемой аэис
- •Приложение е
- •Приложение ж
- •Приложение и Примеры текстовых и графических отчетов, формируемых арм
6. Разработка программного обеспечения арм
6.1 Методы и средства разработки программного обеспечения
Система разработана в СУБД Ассеss 2003. В СУБД Ассеss 2003 большинство несложных информационных задач решаются без программирования. Для создания более сложных приложений используется язык программирования Visual Basic for Application. Язык Visual Basic является объектно-ориентированным языком программирования, ориентированным на обработку событий (нажатие определенной кнопки или клавиши, изменение данных и др.). Программа составляется из инструкций, похожих на команды других современных языков, таких как Раscal и др. С другой стороны, каждый модуль программы привязан к конкретному объекту (к форме или отчету), а каждая процедура модуля соответствует какому-либо событию, происходящему с данным объектом.
Широко используется язык QВЕ (Query by Example - запрос по образцу) – таблично-ориентированный язык для работы в диалоговом режиме с реляционными базами данных. Язык предназначен для конечного пользователя и позволяет описывать запросы для создания, изменения, поиска и контроля БД, Достоинство языка QВЕ: простота для изучения, понимания и применения.
Каждый запрос в языке QВЕ может выполнять сразу несколько реляционных операций: соединение таблиц, отбор полей, выбор записей, а также некоторые вычисления.
В основу языка положены две концепции:
программирование запросов представляет собой заполнение двумерных таблиц – шаблонов,
таблица - шаблон представляет собой пример решения задачи, как оно видится конечному пользователю.
В шаблоне запроса в качестве заголовков столбцов применяются имена полей из БД, в строках таблицы задаются критерии поиска, выборки, сортировки или формулы вычисления, определяется видимость полей и т. п. Связь исходных таблиц между собой, но общим полям также описывается в шаблоне запроса.
Результат выполнения запроса выглядит в виде таблицы, которую можно сохранить, переименовать и далее работать как с обычной таблицей БД.
Cостав и структура программного обеспечения (по) арм
База данных разделена на 2 файла, благодаря чему уменьшен обмен данными и пользователи могут одновременно использовать свои автоматизированные рабочие места.
Описание запросов и макросов.
Бухгалтерия:
Структура запросов для АРМ главного бухгалтера представлена на таблице 6.1.
Таблица 6.1 – Структура запросов для АРМ главного бухгалтера
Назначение запроса |
Наименование запроса |
Параметры |
Источник данных: таблица БД или запрос |
Формирование документа «Себестоимость продукции» |
З_СебесПрод |
Название продукции, Дата, Единица измерения, Название подразделения |
Таблица «Продукция», «Себестоимость», «Единица измерения», «подразделение» |
Текст запроса |
|||
SELECT [6 Продукция].Название_прод, [18 Себестоимость].Дата, Sum(([Амортизационные расходы]![Сумма]+[ИтогРасЛиста]![Начисление]+[Затраты на изготовление продукции]![Затраты])/[17 Сод_Плана]![Количество_факт]) AS Себестоимость, [4 Ед_изм].Название, [3 Подразделение].Название_подр FROM ([4 Ед_изм] INNER JOIN ((([3 Подразделение] INNER JOIN (([13 Тех_опер] INNER JOIN ИтогРасЛиста ON [13 Тех_опер].Номер = ИтогРасЛиста.Номер) INNER JOIN ([11 Наряд] INNER JOIN ([10 Справочник_тар] INNER JOIN [12 Сод_наряда] ON [10 Справочник_тар].номер_сп = [12 Сод_наряда].номер_сп) ON [11 Наряд].Номер_наряда = [12 Сод_наряда].Номер_наряда) ON ([13 Тех_опер].Номер = [12 Сод_наряда].Номер) AND ([13 Тех_опер].Номер = [10 Справочник_тар].Номер)) ON [3 Подразделение].Номер_подразделения = [11 Наряд].Номер_подразделения) INNER JOIN [17 Сод_Плана] ON [3 Подразделение].Номер_подразделения = [17 Сод_Плана].Номер_подразделения) INNER JOIN [18 Себестоимость] ON [3 Подразделение].Номер_подразделения = [18 Себестоимость].Номер_подразделения) ON [4 Ед_изм].Код_ед_изм = [18 Себестоимость].Код_ед_изм) INNER JOIN (([6 Продукция] INNER JOIN [Амортизационные расходы] ON [6 Продукция].Название_прод = [Амортизационные расходы].Название_прод) INNER JOIN [Затраты на изготовление продукции] ON [6 Продукция].Название_прод = [Затраты на изготовление продукции].Название_прод) ON ([6 Продукция].Код_продукции = [18 Себестоимость].Код_продукции) AND ([6 Продукция].Код_продукции = [17 Сод_Плана].Код_продукции) AND ([6 Продукция].Код_продукции = [11 Наряд].Код_продукции) AND ([4 Ед_изм].Код_ед_изм = [6 Продукция].Код_ед_изм) GROUP BY [6 Продукция].Название_прод, [18 Себестоимость].Дата, [4 Ед_изм].Название, [3 Подразделение].Название_подр, [13 Тех_опер].Номер; |
Продолжение таблицы 6.1
Формирование документа «Расчетный лист» |
З_РасчЛист |
ФИО сотрудника, Месяц, Название должности, Название подразделения, Начисление, Премия |
Таблицы «Сотрудники»,«Должности», «Справочник_тар», «Расч_лист», «Сод_расчетного листа», «Сод_наряда» |
|
Текст запроса |
||||
SELECT [1 Сотрудники].ФИО_сотрудника, [14 Расч_лист].Месяц, [9 Должность].Название, [3 Подразделение].Название_подр, ИтогРасЛиста.Начисление, ИтогРасЛиста.Премия, ИтогРасЛиста.[Сумма начисления] FROM [9 Должность] INNER JOIN ([3 Подразделение] INNER JOIN ([1 Сотрудники] INNER JOIN ([14 Расч_лист] INNER JOIN ИтогРасЛиста ON [14 Расч_лист].Номер = ИтогРасЛиста.Номер) ON [1 Сотрудники].Табельный_номер = [14 Расч_лист].Табельный_номер) ON [3 Подразделение].Номер_подразделения = [14 Расч_лист].Номер_подразделения) ON [9 Должность].Код_должности = [1 Сотрудники].Код_должности GROUP BY [1 Сотрудники].ФИО_сотрудника, [14 Расч_лист].Месяц, [9 Должность].Название, [3 Подразделение].Название_подр, ИтогРасЛиста.Начисление, ИтогРасЛиста.Премия, ИтогРасЛиста.[Сумма начисления]; |
||||
Вычисление итогов для «Расчетного листа» |
З_ИтогДляРасч |
Начисление, Премия, Итого |
Таблицы «Сод_расч_листа» |
|
Текст запроса |
||||
SELECT Sum([12 Сод_наряда]![Количество_факт]*[13 Тех_опер]![Продолжительность]*[10 Справочник_тар]![Расценка]) AS Начисление, [15 Сод_расч_листа].Премия, [Начисление]+[15 Сод_расч_листа]![Премия] AS [Сумма начисления], [1 Сотрудники].ФИО_сотрудника, [15 Сод_расч_листа].Номер FROM ([15 Сод_расч_листа] INNER JOIN [13 Тех_опер] ON [15 Сод_расч_листа].Номер = [13 Тех_опер].Номер) INNER JOIN ([1 Сотрудники] INNER JOIN (([14 Расч_лист] INNER JOIN [10 Справочник_тар] ON [14 Расч_лист].Номер = [10 Справочник_тар].Номер) INNER JOIN [12 Сод_наряда] ON ([10 Справочник_тар].номер_сп = [12 Сод_наряда].номер_сп) AND ([14 Расч_лист].Номер = [12 Сод_наряда].Номер)) ON [1 Сотрудники].Табельный_номер = [14 Расч_лист].Табельный_номер) ON ([14 Расч_лист].Номер = [15 Сод_расч_листа].Номер) AND ([13 Тех_опер].Номер = [12 Сод_наряда].Номер) AND ([13 Тех_опер].Номер = [10 Справочник_тар].Номер) GROUP BY [15 Сод_расч_листа].Премия, [1 Сотрудники].ФИО_сотрудника, [15 Сод_расч_листа].Номер, [14 Расч_лист].Номер, [13 Тех_опер].Продолжительность; |
||||
Формирование отчёта «Графики и тенденции» |
З_ГрафИТенд |
Дата начала, дата окончания, Название продукции, Название подразделения, Факт, План, |
Таблицы «План производства»,«СодПлана», «Продукция», «Подразделение» |
|
Текст запроса |
||||
SELECT [16 ПланПроизводства].[Дата начала], [16 ПланПроизводства].ДатаОкончания, [17 Сод_Плана].Количество_план, [17 Сод_Плана].Количество_факт, [3 Подразделение].Название_подр, [6 Продукция].Название_прод, [Затраты на изготовление продукции].Затраты, СебесПрод.Себестоимость FROM (([6 Продукция] INNER JOIN [Затраты на изготовление продукции] ON [6 Продукция].Название_прод = [Затраты на изготовление продукции].Название_прод) INNER JOIN СебесПрод ON [6 Продукция].Название_прод = СебесПрод.Название_прод) INNER JOIN ([3 Подразделение] INNER JOIN ([16 ПланПроизводства] INNER JOIN [17 Сод_Плана] ON [16 ПланПроизводства].[Код плана] = [17 Сод_Плана].[Код плана]) ON [3 Подразделение].Номер_подразделения = [17 Сод_Плана].Номер_подразделения) ON [6 Продукция].Код_продукции = [17 Сод_Плана].Код_продукции GROUP BY [16 ПланПроизводства].[Дата начала], [16 ПланПроизводства].ДатаОкончания, [17 Сод_Плана].Количество_план, [17 Сод_Плана].Количество_факт, [3 Подразделение].Название_подр, [6 Продукция].Название_прод, [Затраты на изготовление продукции].Затраты, СебесПрод.Себестоимость; |
Структура запросов для АРМ бухгалтера по учету труда и з/п представлена на таблице 6.2.
Таблица 6.2 - Структура запросов для АРМ бухгалтера по учету труда и з/п
Назначение запроса |
Наименование запроса |
Параметры |
Источник данных: таблица БД или запрос |
Формирование документа «Наряд» |
З_Наряд |
Номер наряда, Подразделение, Сотрудник, Дата, Название технологической операции, Количество, Брак |
Таблица «Подразделения», «Наряд», «СодНаряда», «Сотрудники», «Технологические операции», «Справочник_тар» |
Текст запроса |
|||
SELECT [6 Продукция].Название_прод, [1 Сотрудники].ФИО_сотрудника, [11 Наряд].Дата, [10 Справочник_тар].Расценка, [13 Тех_опер].Название, [12 Сод_наряда].Количество_факт, [12 Сод_наряда].Брак, [12 Сод_наряда].Количество_план, [3 Подразделение].Название_подр, Sum([12 Сод_наряда]![Количество_факт]*[13 Тех_опер]![Продолжительность])*[10 Справочник_тар]![Расценка] AS Начислено, [11 Наряд].Номер_наряда FROM [6 Продукция] INNER JOIN ([3 Подразделение] INNER JOIN ([13 Тех_опер] INNER JOIN (([1 Сотрудники] INNER JOIN [11 Наряд] ON [1 Сотрудники].Табельный_номер = [11 Наряд].Табельный_номер) INNER JOIN ([10 Справочник_тар] INNER JOIN [12 Сод_наряда] ON [10 Справочник_тар].номер_сп = [12 Сод_наряда].номер_сп) ON [11 Наряд].Номер_наряда = [12 Сод_наряда].Номер_наряда) ON ([13 Тех_опер].Номер = [12 Сод_наряда].Номер) AND ([13 Тех_опер].Номер = [10 Справочник_тар].Номер)) ON [3 Подразделение].Номер_подразделения = [11 Наряд].Номер_подразделения) ON [6 Продукция].Код_продукции = [11 Наряд].Код_продукции GROUP BY [6 Продукция].Название_прод, [1 Сотрудники].ФИО_сотрудника, [11 Наряд].Дата, [10 Справочник_тар].Расценка, [13 Тех_опер].Название, [12 Сод_наряда].Количество_факт, [12 Сод_наряда].Брак, [12 Сод_наряда].Количество_план, [3 Подразделение].Название_подр, [11 Наряд].Номер_наряда; |
Структура запросов для АРМ бухгалтера по учету труда и с/б родукции представлена на таблице 6.3.
Таблица 6.3 - Структура запросов для АРМ бухгалтера по учету труда и с/б
Назначение запроса |
Наименование запроса |
Параметры |
Источник данных: таблица БД или запрос |
|
Формирование документа «Акт на списание материалов» |
З_АктСпис |
Номер акта, КодПродукции, Дата, Название материала, Количество |
Таблица «АктНаСпис», «Продукция», «СодАкта», «Материалы» |
|
Текст запроса |
||||
SELECT [6 Продукция].Название_прод, [2 Материалы].Название, [7 Акт].Дата_акта, [7 Акт].Номер_акта, [8 Сод_акта].Количество, Sum([8 Сод_акта]![Количество]*[2 Материалы]![Цена]) AS Сумма FROM ([6 Продукция] INNER JOIN [7 Акт] ON [6 Продукция].Код_продукции = [7 Акт].Код_продукции) INNER JOIN ([2 Материалы] INNER JOIN [8 Сод_акта] ON [2 Материалы].Код_материала = [8 Сод_акта].Код_материала) ON [7 Акт].Номер_акта = [8 Сод_акта].Номер_акта GROUP BY [6 Продукция].Название_прод, [2 Материалы].Название, [7 Акт].Дата_акта, [7 Акт].Номер_акта, [8 Сод_акта].Количество; |
||||
Формирование «Справки о затратах» |
З_Затрат |
Название продукции, Дата, Затраты |
Таблицы «Затраты», «Продукция» |
|
Текст запроса |
||||
SELECT [19 Затраты].Дата, Sum([ИтогРасЛиста]![Начисление]+[Амортизационные расходы]![Сумма]+[Акт на списание]![Сумма]) AS Затраты, [6 Продукция].Название_прод FROM ((([5 Оборудование] INNER JOIN ([2 Материалы] INNER JOIN (([6 Продукция] INNER JOIN [Акт на списание] ON [6 Продукция].Название_прод = [Акт на списание].Название_прод) INNER JOIN [Амортизационные расходы] ON [6 Продукция].Название_прод = [Амортизационные расходы].Название_прод) ON [2 Материалы].Код_материала = [6 Продукция].Код_материала) ON [5 Оборудование].Номер_об = [6 Продукция].Номер_об) INNER JOIN ((ИтогРасЛиста INNER JOIN [1 Сотрудники] ON ИтогРасЛиста.ФИО_сотрудника = [1 Сотрудники].ФИО_сотрудника) INNER JOIN [11 Наряд] ON [1 Сотрудники].Табельный_номер = [11 Наряд].Табельный_номер) ON [6 Продукция].Код_продукции = [11 Наряд].Код_продукции) INNER JOIN [17 Сод_Плана] ON [6 Продукция].Код_продукции = [17 Сод_Плана].Код_продукции) INNER JOIN [19 Затраты] ON [6 Продукция].Код_продукции = [19 Затраты].Код_продукции GROUP BY [19 Затраты].Дата, [6 Продукция].Название_прод; |
||||
Вычисление «Амортизационных расходов» |
З_АмортРасх |
Название продукции, Сумма |
Таблицы «Продукция» |
|
Текст запроса |
||||
SELECT [6 Продукция].Название_прод, Sum([5 Оборудование]![Нормы_отчислений]*[13 Тех_опер]![Продолжительность]*[12 Сод_наряда]![Количество_факт]) AS Сумма FROM ([5 Оборудование] INNER JOIN ([13 Тех_опер] INNER JOIN [12 Сод_наряда] ON [13 Тех_опер].Номер = [12 Сод_наряда].Номер) ON [5 Оборудование].Номер_об = [13 Тех_опер].Номер_об) INNER JOIN [6 Продукция] ON [5 Оборудование].Номер_об = [6 Продукция].Номер_об GROUP BY [6 Продукция].Название_прод; |
Производственное подразделение:
Структура запросов для АРМ начальника ПП представлена на таблице 6.4.
Таблица 6.4 - Структура запросов для АРМ начальника ПП
Назначение запроса |
Наименование запроса |
Параметры |
Источник данных: таблица БД или запрос |
|
Формирование документа «Плана производства» |
З_ПланПроизв |
Название Продукции, Дата начала, Дата окончания, Название подразделения, Количество план, количество факт, Сумма |
Таблица «План производства», «Продукция», «СодПлана», «Подразделение» |
|
Текст запроса |
||||
SELECT [6 Продукция].Название_прод, [3 Подразделение].Название_подр, [16 ПланПроизводства].[Дата начала], [16 ПланПроизводства].ДатаОкончания, [17 Сод_Плана].Количество_план, [17 Сод_Плана].Количество_факт, [17 Сод_Плана]![Количество_факт]*[Затраты на изготовление продукции]![Затраты] AS [Сумма потраченая на производство] FROM ([6 Продукция] INNER JOIN [Затраты на изготовление продукции] ON [6 Продукция].Название_прод = [Затраты на изготовление продукции].Название_прод) INNER JOIN ([3 Подразделение] INNER JOIN ([16 ПланПроизводства] INNER JOIN [17 Сод_Плана] ON [16 ПланПроизводства].[Код плана] = [17 Сод_Плана].[Код плана]) ON [3 Подразделение].Номер_подразделения = [17 Сод_Плана].Номер_подразделения) ON [6 Продукция].Код_продукции = [17 Сод_Плана].Код_продукции GROUP BY [6 Продукция].Название_прод, [3 Подразделение].Название_подр, [16 ПланПроизводства].[Дата начала], [16 ПланПроизводства].ДатаОкончания, [17 Сод_Плана].Количество_план, [17 Сод_Плана].Количество_факт, [17 Сод_Плана]![Количество_факт]*[Затраты на изготовление продукции]![Затраты]; |
||||
Формирование «Накладной на готовую продукцию» |
З_НаклНаГотов |
Название продукции, название подразделения, Дата, Количество, Цена |
Таблицы «Подразделения», «Продукция», «ГотовПрод», «СодГотовПрод» |
|
Текст запроса |
||||
SELECT [3 Подразделение].Название_подр, [6 Продукция].Название_прод, [28 Готов_прод].Дата, [29 Сод_готов_прод].Количество, [29 Сод_готов_прод]![Количество]*[СебесПрод]![Себестоимость] AS Цена FROM [3 Подразделение] INNER JOIN ([28 Готов_прод] INNER JOIN (([6 Продукция] INNER JOIN [29 Сод_готов_прод] ON [6 Продукция].Код_продукции = [29 Сод_готов_прод].[Код продукции]) INNER JOIN СебесПрод ON [6 Продукция].Название_прод = СебесПрод.Название_прод) ON [28 Готов_прод].Код_готов = [29 Сод_готов_прод].Код_готов) ON [3 Подразделение].Номер_подразделения = [28 Готов_прод].Номер_подразделения GROUP BY [3 Подразделение].Название_подр, [6 Продукция].Название_прод, [28 Готов_прод].Дата, [29 Сод_готов_прод].Количество, [29 Сод_готов_прод]![Количество]*[СебесПрод]![Себестоимость]; |
||||
Формирование отчета «О выполнении плана» |
З_ВыпПлана |
Название продукции, Название подразделения, количество план, количество факт, процент выполнения |
Таблицы «Продукция», «Подразделения», «План производства», «СодПлана» |
|
Текст запроса |
||||
SELECT [6 Продукция].Название_прод, [3 Подразделение].Название_подр, [17 Сод_Плана].Количество_план, [17 Сод_Плана].Количество_факт, Незав.[Процент выполнения] FROM ([6 Продукция] INNER JOIN ([3 Подразделение] INNER JOIN Незав ON [3 Подразделение].Название_подр = Незав.Название_подр) ON [6 Продукция].Название_прод = Незав.Название_прод) INNER JOIN ([16 ПланПроизводства] INNER JOIN [17 Сод_Плана] ON [16 ПланПроизводства].[Код плана] = [17 Сод_Плана].[Код плана]) ON ([6 Продукция].Код_продукции = [17 Сод_Плана].Код_продукции) AND ([3 Подразделение].Номер_подразделения = [17 Сод_Плана].Номер_подразделения); |
Структура запросов для АРМ сотрудника по учету труда в ПП представлена на таблице 6.5.
Таблица 6.5 - Структура запросов для АРМ сотрудника по учету труда в ПП
Назначение запроса |
Наименование запроса |
Параметры |
Источник данных: таблица БД или запрос |
|
Формирование документа «Наряд» |
З_Наряд |
Номер наряда, Подразделение, Сотрудник, Дата, Название технологической операции, Количество, Брак |
Таблица «Подразделения», «Наряд», «СодНаряда», «Сотрудники», «Технологические операции», «Справочник_тар» |
|
Текст запроса |
||||
SELECT [6 Продукция].Название_прод, [1 Сотрудники].ФИО_сотрудника, [11 Наряд].Дата, [10 Справочник_тар].Расценка, [13 Тех_опер].Название, [12 Сод_наряда].Количество_факт, [12 Сод_наряда].Брак, [12 Сод_наряда].Количество_план, [3 Подразделение].Название_подр, Sum([12 Сод_наряда]![Количество_факт]*[13 Тех_опер]![Продолжительность])*[10 Справочник_тар]![Расценка] AS Начислено, [11 Наряд].Номер_наряда FROM [6 Продукция] INNER JOIN ([3 Подразделение] INNER JOIN ([13 Тех_опер] INNER JOIN (([1 Сотрудники] INNER JOIN [11 Наряд] ON [1 Сотрудники].Табельный_номер = [11 Наряд].Табельный_номер) INNER JOIN ([10 Справочник_тар] INNER JOIN [12 Сод_наряда] ON [10 Справочник_тар].номер_сп = [12 Сод_наряда].номер_сп) ON [11 Наряд].Номер_наряда = [12 Сод_наряда].Номер_наряда) ON ([13 Тех_опер].Номер = [12 Сод_наряда].Номер) AND ([13 Тех_опер].Номер = [10 Справочник_тар].Номер)) ON [3 Подразделение].Номер_подразделения = [11 Наряд].Номер_подразделения) ON [6 Продукция].Код_продукции = [11 Наряд].Код_продукции GROUP BY [6 Продукция].Название_прод, [1 Сотрудники].ФИО_сотрудника, [11 Наряд].Дата, [10 Справочник_тар].Расценка, [13 Тех_опер].Название, [12 Сод_наряда].Количество_факт, [12 Сод_наряда].Брак, [12 Сод_наряда].Количество_план, [3 Подразделение].Название_подр, [11 Наряд].Номер_наряда; |
||||
Формирование документа «Плана производства» |
З_ПланПроизв |
Название Продукции, Дата начала, Дата окончания, Название подразделения, Количество план, количество факт, Сумма |
Таблица «План производства», «Продукция», «СодПлана», «Подразделение» |
|
Текст запроса |
||||
SELECT [6 Продукция].Название_прод, [3 Подразделение].Название_подр, [16 ПланПроизводства].[Дата начала], [16 ПланПроизводства].ДатаОкончания, [17 Сод_Плана].Количество_план, [17 Сод_Плана].Количество_факт, [17 Сод_Плана]![Количество_факт]*[Затраты на изготовление продукции]![Затраты] AS [Сумма потраченая на производство] FROM ([6 Продукция] INNER JOIN [Затраты на изготовление продукции] ON [6 Продукция].Название_прод = [Затраты на изготовление продукции].Название_прод) INNER JOIN ([3 Подразделение] INNER JOIN ([16 ПланПроизводства] INNER JOIN [17 Сод_Плана] ON [16 ПланПроизводства].[Код плана] = [17 Сод_Плана].[Код плана]) ON [3 Подразделение].Номер_подразделения = [17 Сод_Плана].Номер_подразделения) ON [6 Продукция].Код_продукции = [17 Сод_Плана].Код_продукции GROUP BY [6 Продукция].Название_прод, [3 Подразделение].Название_подр, [16 ПланПроизводства].[Дата начала], [16 ПланПроизводства].ДатаОкончания, [17 Сод_Плана].Количество_план, [17 Сод_Плана].Количество_факт, [17 Сод_Плана]![Количество_факт]*[Затраты на изготовление продукции]![Затраты]; |
||||
Формирование отчета «Данные о незаверешеном производстве» |
З_ДанНезав |
Название продукции, Название подразделения, количество, процент выполнения |
Таблицы «Продукция», «Подразделения», «Незав», «СодНезав» |
|
Текст запроса |
||||
SELECT [3 Подразделение].Название_подр, [6 Продукция].Название_прод, [24 Незав].Дата, [25 Сод незав].Количество, [17 Сод_Плана]![Количество_план]/[17 Сод_Плана]![Количество_факт]*100 AS [Процент выполнения] FROM [16 ПланПроизводства] INNER JOIN (([6 Продукция] INNER JOIN ([3 Подразделение] INNER JOIN ([24 Незав] INNER JOIN [25 Сод незав] ON [24 Незав].[Код незав] = [25 Сод незав].[Код незав]) ON [3 Подразделение].Номер_подразделения = [24 Незав].Номер_подразделения) ON [6 Продукция].Код_продукции = [25 Сод незав].Код_продукции) INNER JOIN [17 Сод_Плана] ON ([6 Продукция].Код_продукции = [17 Сод_Плана].Код_продукции) AND ([3 Подразделение].Номер_подразделения = [17 Сод_Плана].Номер_подразделения)) ON [16 ПланПроизводства].[Код плана] = [17 Сод_Плана].[Код плана]; |
Структура запросов для АРМ сотрудника по учету материалов и продукции в ПП представлена на таблице 6.6.
Таблица 6.6 - Структура запросов для АРМ сотрудника по учету материалов и продукции в ПП
Назначение запроса |
Наименование запроса |
Параметры |
Источник данных: таблица БД или запрос |
|
Формирование документа «Акт на списание материалов» |
З_АктСпис |
Номер акта, КодПродукции, Дата, Название материала, Количество |
Таблица «АктНаСпис», «Продукция», «СодАкта», «Материалы» |
|
Текст запроса |
||||
SELECT [6 Продукция].Название_прод, [2 Материалы].Название, [7 Акт].Дата_акта, [7 Акт].Номер_акта, [8 Сод_акта].Количество, Sum([8 Сод_акта]![Количество]*[2 Материалы]![Цена]) AS Сумма FROM ([6 Продукция] INNER JOIN [7 Акт] ON [6 Продукция].Код_продукции = [7 Акт].Код_продукции) INNER JOIN ([2 Материалы] INNER JOIN [8 Сод_акта] ON [2 Материалы].Код_материала = [8 Сод_акта].Код_материала) ON [7 Акт].Номер_акта = [8 Сод_акта].Номер_акта GROUP BY [6 Продукция].Название_прод, [2 Материалы].Название, [7 Акт].Дата_акта, [7 Акт].Номер_акта, [8 Сод_акта].Количество; |
||||
Формирование документа «Плана производства» |
З_ПланПроизв |
Название Продукции, Дата начала, Дата окончания, Название подразделения, Количество план, количество факт, Сумма |
Таблица «План производства», «Продукция», «СодПлана», «Подразделение» |
|
Текст запроса |
||||
SELECT [6 Продукция].Название_прод, [3 Подразделение].Название_подр, [16 ПланПроизводства].[Дата начала], [16 ПланПроизводства].ДатаОкончания, [17 Сод_Плана].Количество_план, [17 Сод_Плана].Количество_факт, [17 Сод_Плана]![Количество_факт]*[Затраты на изготовление продукции]![Затраты] AS [Сумма потраченая на производство] FROM ([6 Продукция] INNER JOIN [Затраты на изготовление продукции] ON [6 Продукция].Название_прод = [Затраты на изготовление продукции].Название_прод) INNER JOIN ([3 Подразделение] INNER JOIN ([16 ПланПроизводства] INNER JOIN [17 Сод_Плана] ON [16 ПланПроизводства].[Код плана] = [17 Сод_Плана].[Код плана]) ON [3 Подразделение].Номер_подразделения = [17 Сод_Плана].Номер_подразделения) ON [6 Продукция].Код_продукции = [17 Сод_Плана].Код_продукции GROUP BY [6 Продукция].Название_прод, [3 Подразделение].Название_подр, [16 ПланПроизводства].[Дата начала], [16 ПланПроизводства].ДатаОкончания, [17 Сод_Плана].Количество_план, [17 Сод_Плана].Количество_факт, [17 Сод_Плана]![Количество_факт]*[Затраты на изготовление продукции]![Затраты]; |
||||
Формирование отчета «Накладная на готовую продукцию» |
З_НаклНаГотов |
Название продукции, название подразделения, Дата, Количество, Цена |
Таблицы «Подразделения», «Продукция», «ГотовПрод», «СодГотовПрод» |
|
Текст запроса |
||||
SELECT [3 Подразделение].Название_подр, [6 Продукция].Название_прод, [28 Готов_прод].Дата, [29 Сод_готов_прод].Количество, [29 Сод_готов_прод]![Количество]*[СебесПрод]![Себестоимость] AS Цена FROM [3 Подразделение] INNER JOIN ([28 Готов_прод] INNER JOIN (([6 Продукция] INNER JOIN [29 Сод_готов_прод] ON [6 Продукция].Код_продукции = [29 Сод_готов_прод].[Код продукции]) INNER JOIN СебесПрод ON [6 Продукция].Название_прод = СебесПрод.Название_прод) ON [28 Готов_прод].Код_готов = [29 Сод_готов_прод].Код_готов) ON [3 Подразделение].Номер_подразделения = [28 Готов_прод].Номер_подразделения GROUP BY [3 Подразделение].Название_подр, [6 Продукция].Название_прод, [28 Готов_прод].Дата, [29 Сод_готов_прод].Количество, [29 Сод_готов_прод]![Количество]*[СебесПрод]![Себестоимость]; |
Описание макросов представлено на рисунке 6.1
Рисунок 6.1 – макросы
Примеры работы программного обеспечения, экранные и отчетные формы представлены в Приложении Е.