Описание основных модулей
Для обеспечения возможности выбора периода отсчета создана форма, содержащая два поля ввода, настроенные для ввода значений типа дата, т. е. в свойстве маска ввода установлено значение — 00.00.0000;0;_. Для формирования отчета по услугам создан соответствующий запрос на выборку: В указанном запросе обеспечение возможности выбора данных за определенный период обеспечивается оператором: Between… Читать ещё >
Описание основных модулей (реферат, курсовая, диплом, контрольная)
1. Модуль работы с заказами.
В целях обеспечения решения всех задач при работе с заказами указанный были разработаны следующие формы:
«Журнал заказов» — форма обеспечивающая просмотр списка заказов. Построена на основе таблице заказ, имеет ленточный тип (рис. 8).
Рисунок 8 — Форма «Журнал заказов».
Для обеспечения работы с конкретным заказом разработана сложная (с подчиненной частью) форма, основой которой является таблица «Заказ». Подчиненная часть строится на основе запроса обеспечивающего вывод информации из таблиц «Услуга» и «Услуга в заказе». Использование запроса обеспечивает возможность автоматического ввода стоимости услуги при выборе соответствующего названия. Ниже приведена SQL форма указанного запроса:
SELECT RabInZak. Codz, RabInZak. Nn, RabInZak. CodRab, RabInZak. SumAv, RabInZak. Ispoln, RabInZak. Dataz, RabInZak. Data, RabInZak. Codk, RabV. SUM_A.
FROM RabV INNER JOIN RabInZak ON RabV. CODR = RabInZak. CodRab;
Для поля «код услуги» таблицы «Услуга в заказе» используется механизм постановки, реализуемый средствами Access. Настройки подстановки приведены на рисунке 9.
Рисунок 9 — Настройки подстановки.
Для обеспечения автоматического ввода стоимости услуги для поля «Код услуги» определена процедура обработки события «После обновления», содержащее следующий код:
Private Sub CodRab_AfterUpdate ().
SumAv = SUM_A.
End Sub.
Внешний вид формы заказ приведен на рис. 10.
Рисунок 10 — Внешний вид формы для работы с заказом.
Для обеспечения автоматического пересчета стоимости заказа реализован набор запросов:
1. Запрос на создание таблицы, обеспечивающий суммирование стоимости услуг, SQL форма:
SELECT RabInZak. Codz, Sum (RabInZak.SumAv) AS SumZak INTO Temp.
FROM RabInZak.
GROUP BY RabInZak.Codz.
HAVING (((RabInZak.Codz)=[Forms]![ZakazDoc]![CODZ]));
2. Запрос на обновление, выполняющий обновление суммы заказа из временной таблицы, SQL форма:
UPDATE Temp INNER JOIN Zakaz ON Temp. Codz = Zakaz. CODZ SET Zakaz. SUM_Z = [SumZak];
Указанные запросы выполняются в рамках макроса «RashSumZak», структура которого приведена в таблице 12.
Таблица 12.
Макрокоманда. | Аргумент. | Значение. |
SetWarnings. | Включить сообщения: | Нет. |
OpenQuery. | Имя запроса: | RashSumZak. |
Режим: | Таблица. | |
Режим данных: | Изменение. | |
OpenQuery. | Имя запроса: | ObnovlSumZak. |
Режим: | Таблица. | |
Режим данных: | Изменение. | |
SetWarnings. | Включить сообщения: | Да. |
Для обеспечения возможности распечатки заказа средствами Microsoft Access разработан отчет, основой которого является запрос, обеспечивающий выборку только тех записей, которые связаны с просматриваемым в данный момент заказом:
SELECT Zakaz. CODZ, Zakaz. DATA, Zakaz. DOC, Zakaz. FIO, Zakaz. NASPU, Zakaz. S_OKR, Zakaz. YL, Zakaz. DOM, Zakaz. KOR, Zakaz. KV, Zakaz. PRIN, Zakaz. SUM_Z, RabInZak. Nn, RabInZak. CodRab, RabInZak. SumAv, RabInZak.Dataz.
FROM Zakaz INNER JOIN RabInZak ON Zakaz. CODZ = RabInZak.Codz.
WHERE (((Zakaz.CODZ)=[Forms]![ZakazDoc]![CODZ]));
2. Модуль для работы со справочниками.
Работа со справочниками предусматривает использование формы списка с ленточным типом вывода информации, с которой обеспечивается переход к одиночной формой, реализующей работу с отдельной записью.
На рисунке 11 представлена форма для работы со списком услуг. Указанная форма разработана на основе мастера Access. В примечании формы размещены кнопки, обеспечивающие переход по записям, добавление, удаление записей, поиск информации. Указанные функции реализованы также с использованием мастеров Access.
Рисунок 11 — Форма «Справочник услуг».
Аналогичным образом реализована работа со справочником работников.
3. Модуль формирования отчетов
Алгоритм решения задачи по формированию всех отчетов в общем является однотипным (рис. 12). Для активизации режима формирования отчета используется соответствующая команда меню ОТЧЕТЫ.
При выборе команды меню ОТЧЕТЫ пользователю предлагается выбрать вид отчета, определить исходные параметры и нажать на кнопку формирования отчета, при этом активизируется определенный отчет БД Access, который в свою очередь открывает необходимые запросы, производится подсчет соответствующих значений и вывод их на экран или на принтер.
Рисунок 12 — Обобщенный алгоритм формирования отчетов
Для обеспечения возможности выбора периода отсчета создана форма, содержащая два поля ввода, настроенные для ввода значений типа дата, т. е. в свойстве маска ввода установлено значение — 00.00.0000;0;_. Для формирования отчета по услугам создан соответствующий запрос на выборку:
SELECT RabInZak. CodRab, Count (Zakaz.CODZ) AS Количество, Sum (Zakaz.SUM_Z) AS Сумма.
FROM Zakaz INNER JOIN RabInZak ON Zakaz. CODZ = RabInZak.Codz.
WHERE (((Zakaz.DATA) Between [Forms]![FormOthet]![DatNah] And [Forms]![FormOthet]![DataKon])).
GROUP BY RabInZak.CodRab.
ORDER BY RabInZak. CodRab;
В указанном запросе обеспечение возможности выбора данных за определенный период обеспечивается оператором: Between [Forms]![FormOthet]![DatNah] And [Forms]![FormOthet]![DataKon])), где DatNah — ссылка на поле для ввода даты начала периода, DatKon — ссылка на поле для ввода даты окончания периода выбора.
Для формирования отчета по работникам разработаны два запрос, одни для вывода сводной информации:
SELECT RabInZak. Ispoln, Count (Zakaz.CODZ) AS Количество, Sum (Zakaz.SUM_Z) AS Сумма.
FROM Zakaz INNER JOIN RabInZak ON Zakaz. CODZ = RabInZak.Codz.
WHERE (((Zakaz.DATA) Between [Forms]![FormOthet]![DatNah] And [Forms]![FormOthet]![DataKon])).
GROUP BY RabInZak.Ispoln.
ORDER BY RabInZak. Ispoln;
Второй отчет обеспечивает вывод развернутой информации по работникам и услугам:
SELECT RabInZak. Ispoln, RabInZak. CodRab, Count (Zakaz.CODZ) AS Количество, Sum (Zakaz.SUM_Z) AS Сумма.
FROM Zakaz INNER JOIN RabInZak ON Zakaz. CODZ = RabInZak.Codz.
WHERE (((Zakaz.DATA) Between [Forms]![FormOthet]![DatNah] And [Forms]![FormOthet]![DataKon])).
GROUP BY RabInZak. Ispoln, RabInZak.CodRab.
ORDER BY RabInZak. Ispoln;
На основе запросов с использованием мастеров Microsoft Access построены соответствующие отчеты. На рисунке 13 приведен отчет по видам работ в режиме конструктора, в который внесены определенные изменения:
- — добавлены в заголовок поля для вывода периода отчета;
- — добавлена область примечание, в которые добавлены компоненты (поля), обеспечивающие подсчет итоговой суммы по количественным плям.
- — изменены настройки отдельных элементов.
Разработанные отчеты можно просмотреть или распечатать, для чего предусмотрены соответствующие кнопки.
Рисунок 13 — Отчет по видам работ в режиме конструктора.