Удержания из зарплаты
Таблица 3.13
Код удержания |
Вид удержания |
Сумма удержания |
1 |
Подоходный налог |
13 |
2 |
Материальный ущерб |
25 |
3 |
Удержание за брак |
10 |
4 |
Штраф |
5 |
5 |
Задолженность |
2 |
6 |
Прогул |
25 |
7 |
Благотворительные цели |
5 |
8 |
Столовая |
3 |
9 |
Аванс |
25 |
10 |
Невыполнение плана |
15 |
11 |
Страховые выплаты |
6 |
12 |
Невыполнение ТБ |
30 |
13 |
Пьянство |
50 |
14 |
Нет удержания |
0 |
Разработка алгоритмов и технологии решения задачи
Общие сведения о содержании и алгоритме решения задачи
По мере оформления ведомостей на выплату заработной платы должен осуществляться ввод этих данных в БД, где они должны храниться. Таким образом, осуществляется накопление необходимой для решения задачи оперативно-учетной информации.
В первом случае необходимо обеспечить анализ выплат заработной платы сотрудникам за указанный период времени с группировкой по сотрудникам. Для этого надо по запросу пользователя (в запросе указывается начальная и конечная дата оформлений ведомостей) сформировать отчет, содержащий сведения о выплатах. Для ввода запроса пользователю будет предоставлено диалоговое окно, где он может непосредственно с клавиатуры ввести необходимые ему даты. При этом выплаты будут формироваться по каждому сотруднику отдельно и нетрудно будет проследить их движение. Отчет должен выводиться на экран и принтер.
Во втором случае необходимо так же сформировать отчёт о выплатах заработной платы (с сохранением всех тех же самых данных, что и в первом случае), но только уже с группировкой по подразделениям. Выводится такое же диалоговое окно. Отчёт так же должен выводиться на экран и принтер.
Описание технологии ввода в базу данных входной информации задачи (определение перечня документов-источников для загрузки данных).
Для решения рассматриваемой задачи должен производиться ввод и накопление оперативно-учетной информации о выплатах заработной платы и использовании рабочего времени.
Справочная информация о сотрудниках, подразделениях, должностях и ставках заработной платы должна быть ранее загружена в базу данных в процессе решения других задач данной предметной области с соответствующих документов.
В соответствии с этим технология ввода входной оперативной информации и решение рассматриваемой задачи с помощью базы данных приведены на рис. 4.1.

Рис. 4.1. Технологическая схема ввода информации и решения задачи оценки оплаты труда и учёта отработанного времени
Основными документами источниками загрузки данных считаются расчётно-платёжная ведомость и табель учёта рабочего времени. Причём табель рабочего времени не представляет из себя единого документа и включает множество форм (праздничные часы, дневные часы, ночные часы, данные по отпускам, данные по отгулам и болезни). Остальные данные представляют из себя справочную информацию и находятся в самой базе данных.
Описание макетов экранных форм для ввода данных
Для ввода информации по учёту заработной платы и рабочего времени должны быть созданы экранные формы, соответствующие формам входных документов (расчётно-платёжная ведомость и табель учёта рабочего времени). Табель учёта рабочего времени (как уже было сказано выше, состоит из нескольких форм). Так же ввод данных будет осуществляться через формы справочных документов, которые будут представлены ниже. Через экранные формы ввода-вывода должен обеспечиваться однократный ввод данных во взаимосвязанные таблицы: «Должности»; «Подразделения»; «Список сотрудников»; «»Награждения»; «Учёт удержаний из зарплаты»; «Отпуска»; «Тарифная сетка»; «Образование»; «Расчётно-платёжная ведомость»; «Табель учёта рабочего времени». Ниже приведены макеты данных экранных форм:
Форма для загрузки данных о должностях на рис.4.2 (является составной многотабличной). Основная часть формы строится на основе таблицы «Должности». В неё входят поля: «Должность» и «Число вакансий». Подчинённая форма строится на основе таблицы «Сотрудники» и содержит информацию о фамилиях и табельных номерах сотрудников.

Рис. 4.2. Макет формы ввода-вывода для загрузки данных о должностях.
Форма для загрузки данных по отпускам на рис.4.3 (является составной многотабличной). Основная часть формы строится на основе четырёх таблиц: «Отпуска»; «Должности»; «Подразделения» и «Сотрудники». В неё входят следующие вводятся данные о фамилиях сотрудников, их табельных номерах, о подразделениях где они работают и их должностях. Так же туда входят поля: «Вид отпуска»; «Дата отпуска» и «Количество дней отпуска».

Рис. 4.3. Макет формы ввода-вывода для загрузки данных об отпусках.
Форма для загрузки данных по подразделениям на рис.4.4 (является составной многотабличной). Состоит из двух основных частей (двух таблиц): «Подразделения» и «Сотрудники». В главной части вводится название подразделения, а в подчинённой форме вводятся данные о сотруднике.

Рис. 4.4. Макет формы ввода-вывода для загрузки данных по подразделениям.
Форма для загрузки данных о премиях сотрудников на рис.4.5 (является составной многотабличной. Построена на основе четырёх таблиц: «Сотрудники» и «Награждения»; «Должности»; «Подразделения». Содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; наименование премии и сумма её (выражена в процентах).
Форма для загрузки данных о дневных рабочих часах на рис.4.6 (является составной многотабличной). Построена на основе четырёх таблиц: «Сотрудники»; «Табель учёта рабочего времени» (ТУРВ); «Должности»; «Подразделения». Содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; дневные часы (отработанные сотрудником).

Рис. 4.6. Макет формы ввода-вывода для загрузки данных по дневным рабочим часам
Форма для загрузки данных о ночных рабочих часах на рис.4.7 (является составной многотабличной). Построена на основе четырёх таблиц: «Сотрудники»; «Табель учёта рабочего времени» (ТУРВ); «Должности»; «Подразделения». Содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; ночные часы (отработанные сотрудником).

Рис. 4.7. Макет формы ввода-вывода для загрузки данных по ночным рабочим часам
Форма для загрузки данных о праздничных рабочих часах на рис.4.8 (является составной многотабличной). Построена на основе четырёх таблиц: «Сотрудники»; «Табель учёта рабочего времени» (ТУРВ); «Должности»; «Подразделения». Содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; праздничные часы (отработанные сотрудником).

Рис. 4.8. Макет формы ввода-вывода для загрузки данных по праздничным рабочим часам.
Форма для загрузки данных о неотработанных часах по болезни на рис.4.9 (является составной многотабличной). Построена на основе четырёх таблиц: «Сотрудники»; «Табель учёта рабочего времени» (ТУРВ); «Должности»; «Подразделения». Содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает и количество больничных часов.

Рис. 4.9. Макет формы ввода-вывода для загрузки данных по больничным часам.
Форма для загрузки данных о неотработанных часах по отгулам на рис.4.10 (является составной многотабличной). Построена на основе четырёх таблиц: «Сотрудники»; «Табель учёта рабочего времени» (ТУРВ); «Должности»; «Подразделения». Содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; часы по отгулам.

Рис. 4.10. Макет формы ввода-вывода для загрузки данных по отгулам.
Форма расчётно-платёжной ведомости представлена на рис.4.11 (является составной многотабличной). Основная часть формы строится на основе таблицы «Расчётно-платёжная ведомость» (РПВ). Так же данная форма состоит из следующих таблиц: «Сотрудники»; «Табель учёта рабочего времени» (ТУРВ); «Должности»; «Подразделения»; «Тарифная сетка»; «Награждения»; «Удержания». В неё входят поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; его разряд, номер расчётной ведомости; номер табеля рабочего времени; количество (дневных, ночных, праздничных, больничных, отгуленных) часов, наименование награждения, наименование, удержания.

Рис. 4.11. Макет формы расчётно-платёжной ведомости.
Форма для загрузки данных по сотрудникам на рис.4.12 (является составной многотабличной). Построена на основе четырёх таблиц: «Сотрудники»; «Должности»; «Подразделения»; «Образование». Содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; стаж работы; образование; серия и номер паспорта и год рождения сотрудника.

Рис. 4.12. Макет формы ввода-вывода для загрузки данных по сотрудникам.
Форма для загрузки данных о неотработанных часах по тарифным ставкам на рис.4.13 (является составной многотабличной). Построена на основе четырёх таблиц: «Сотрудники»; «Тарифные ставки»; «Должности»; «Подразделения». Содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; его номер разряда и тарифную ставку.

Рис. 4.13. Макет формы ввода-вывода для загрузки данных по тарифным ставкам.
Форма для загрузки данных о неотработанных часах по стажу сотрудников рис.4.14 (является составной многотабличной). Построена на основе четырёх таблиц: «Сотрудники»; «Образование»; «Должности»; «Подразделения». Содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; его год рождения, количество детей, образование и стаж работы.

Рис. 4.14. Макет формы ввода-вывода для загрузки данных по стажу работы сотрудников.
Форма для загрузки данных об удержаниях сотрудников на рис.4.15 (является составной многотабличной. Построена на основе четырёх таблиц: «Сотрудники» и «Удержания»; «Должности»; «Подразделения». Содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; наименование удержания и сумма его (выражена в процентах).

Рис. 4.15. Макет формы ввода-вывода для загрузки данных по удержаниям.
Обобщенный алгоритм решения задачи и его декомпозиция на модули, реализуемые инструментальными средствами.
Алгоритм решаемой задачи должен обеспечить определение заработной платы и количество часов рабочего времени. К тому же определение заработной платы необходимо произвести по двум критериям: сформировать отчёты с группировкой по сотрудникам и с группировкой по подразделениям. В рассматриваемой задаче необходимо для выбранного сотрудника выдать отчет с данными анализа оплаты труда и выдать отчёт для выбранного структурного подразделения по оплатам труда. Поэтому задача может быть разделена на две подзадачи, в каждой из которых формируется свой выходной документ: (рис. 4.16).

Рис. 4.16. Декомпозиция задачи анализа зарплаты на две подзадачи
Алгоритмы реализации модулей задачи и их реализация (запросы, таблицы, формы, отчеты, макросы, стандартные программы).
Реализация запросов средствами Access 2007:
Запрос, по удержаниям заработной платы (пример выполнения представлен на рис. 4.17) - определяет именно тех сотрудников, у кого производится удержание заработной платы (Вид>Режим SQL):

Рис. 4.17. Пример выполнения запроса по удержаниям заработной платы
SELECT Сотрудники.[Табельный №], Сотрудники.ФИО, Сотрудники.Должность, Сотрудники.Подразделение, [Учёт удержаний из зарплаты].[Вид удержания], [Учёт удержаний из зарплаты].[Сумма удержания (в %)] FROM [Учёт удержаний из зарплаты] INNER JOIN ((Сотрудники INNER JOIN [Табель учёта рабочего времени] ON Сотрудники.[Табельный №] = [Табель учёта рабочего времени].[Табельный № сотрудника]) INNER JOIN [Расчётно-платёжная ведомость] ON [Табель учёта рабочего времени].[№ табеля] = [Расчётно-платёжная ведомость].[№ табеля]) ON [Учёт удержаний из зарплаты].[Код удержания] = [Расчётно-платёжная ведомость].[Удержание зарплаты] WHERE ((([Учёт удержаний из зарплаты].[Сумма удержания (в %)])>0)) ORDER BY [Учёт удержаний из зарплаты].[Сумма удержания (в %)]; |
Запрос, по стажу работы сотрудников (пример выполнения представлен на рис. 4.18) - определяет именно тех сотрудников (и их стаж), которые удовлетворяют введённому пользователем значению в диалоговом окне (Вид>Режим SQL):
SELECT Сотрудники.[Табельный №], Сотрудники.[ФИО], Сотрудники.[Год рождения], Сотрудники.[Количество детей], Сотрудники.[Должность], Сотрудники.[Подразделение], Сотрудники.[Образование], Сотрудники.[Стаж работы] FROM Сотрудники WHERE (((Сотрудники.[Стаж работы])=[Введите интересующий вас возраст])) ORDER BY Сотрудники.[ФИО]; |

Рис. 4.18. Пример выполнения запроса по стажу работы сотрудников
Запрос по рабочим праздничным часам (пример выполнения представлен на рис. 4.19) - определяет именно тех сотрудников, которые работали в праздничные дни и имеют праздничные часы (Вид>Режим SQL):

Рис. 4.19. Пример выполнения запроса по праздничным часам
SELECT Сотрудники.[Табельный №], Сотрудники.ФИО, Сотрудники.Должность, Сотрудники.Подразделение, [Табель учёта рабочего времени].[Праздничные часы (часов)] FROM Сотрудники INNER JOIN [Табель учёта рабочего времени] ON Сотрудники.[Табельный №] = [Табель учёта рабочего времени].[Табельный № сотрудника] WHERE ((([Табель учёта рабочего времени].[Праздничные часы (часов)])>0)) ORDER BY [Табель учёта рабочего времени].[Праздничные часы (часов)]; |
Запрос по рабочим ночным часам (пример выполнения представлен на рис. 4.20) - определяет именно тех сотрудников, которые работали в ночные часы (Вид>Режим SQL):

Рис. 4.20. Пример выполнения запроса по ночным часам
SELECT Сотрудники.[Табельный №], Сотрудники.ФИО, Сотрудники.Должность, Сотрудники.Подразделение, [Табель учёта рабочего времени].[Ночные часы (часов)] FROM Сотрудники INNER JOIN [Табель учёта рабочего времени] ON Сотрудники.[Табельный №] = [Табель учёта рабочего времени].[Табельный № сотрудника] WHERE ((([Табель учёта рабочего времени].[Ночные часы (часов)])>0)) ORDER BY [Табель учёта рабочего времени].[Ночные часы (часов)]; |
Запрос по рабочим дневным часам (пример выполнения представлен на рис. 4.21) - определяет количество дневных часов, отработанных каждым сотрудником, «0» часы не учитываются (Вид>Режим SQL):

Рис. 4.21. Пример выполнения запроса по дневным часам
SELECT Сотрудники.[Табельный №], Сотрудники.ФИО, Сотрудники.Должность, Сотрудники.Подразделение, [Табель учёта рабочего времени].[Дневные часы (часов)] FROM Сотрудники INNER JOIN [Табель учёта рабочего времени] ON Сотрудники.[Табельный №] = [Табель учёта рабочего времени].[Табельный № сотрудника] WHERE ((([Табель учёта рабочего времени].[Дневные часы (часов)])>0)) ORDER BY [Табель учёта рабочего времени].[Дневные часы (часов)]; |
Запрос по больничным часам (пример выполнения представлен на рис. 4.22) - определяет только тех работников, у которых имеются часы по болезни (Вид>Режим SQL):

Рис. 4.22. Пример выполнения запроса по больничным
SELECT Сотрудники.[Табельный №], Сотрудники.ФИО, Сотрудники.Должность, Сотрудники.Подразделение, [Табель учёта рабочего времени].[Часов по болезни (часов)] FROM Сотрудники INNER JOIN [Табель учёта рабочего времени] ON Сотрудники.[Табельный №] = [Табель учёта рабочего времени].[Табельный № сотрудника] WHERE ((([Табель учёта рабочего времени].[Часов по болезни (часов)])>0)) ORDER BY [Табель учёта рабочего времени].[Часов по болезни (часов)]; |
Запрос по отгулам (пример выполнения представлен на рис. 4.23) - определяет только тех работников, у которых имеются отгулы (Вид>Режим SQL):

Рис. 4.23. Пример выполнения запроса по отгулам
SELECT Сотрудники.[Табельный №], Сотрудники.ФИО, Сотрудники.Должность, Сотрудники.Подразделение, [Табель учёта рабочего времени].[Часов по отгулам (часов)] FROM Сотрудники INNER JOIN [Табель учёта рабочего времени] ON Сотрудники.[Табельный №] = [Табель учёта рабочего времени].[Табельный № сотрудника] WHERE ((([Табель учёта рабочего времени].[Часов по отгулам (часов)])>0)) ORDER BY [Табель учёта рабочего времени].[Часов по отгулам (часов)]; |
Запрос, по отпускам (пример выполнения представлен на рис. 4.24) - определяет именно тех сотрудников, которые были в отпуске (так же предоставляет количество отпускных дней) и которые удовлетворяют введённому пользователем значению в диалоговом окне (Вид>Режим SQL):
SELECT Сотрудники.[Табельный №], Сотрудники.ФИО, Сотрудники.Должность, Сотрудники.Подразделение, Отпуск.[Вид отпуска], [Табель учёта рабочего времени].[Дата отпуска], [Табель учёта рабочего времени].[Количество дней] FROM Сотрудники INNER JOIN (Отпуск INNER JOIN [Табель учёта рабочего времени] ON Отпуск.[Код отпуска] = [Табель учёта рабочего времени].[Отпуск]) ON Сотрудники.[Табельный №] = [Табель учёта рабочего времени].[Табельный № сотрудника] WHERE ((([Табель учёта рабочего времени].[Дата отпуска])>=[Введите предпологаемую начальную дату:] And ([Табель учёта рабочего времени].[Дата отпуска])<=[Введите предпологаемую конечную дату:]) AND (([Табель учёта рабочего времени].[Количество дней])>0)) ORDER BY [Табель учёта рабочего времени].[Количество дней]; |

Рис. 4.24. Пример выполнения запроса по отпускам
Запрос по премиям (пример выполнения представлен на рис. 4.25) - определяет только тех работников, которые были награждены и так же указывает сумму награждения в процентах (Вид>Режим SQL):

Рис. 4.25. Пример выполнения запроса по премиям
SELECT Сотрудники.[Табельный №], Сотрудники.ФИО, Сотрудники.Должность, Сотрудники.Подразделение, Награждения.[Вид премии], Награждения.[Сумма в %] FROM (Сотрудники INNER JOIN [Табель учёта рабочего времени] ON Сотрудники.[Табельный №] = [Табель учёта рабочего времени].[Табельный № сотрудника]) INNER JOIN (Награждения INNER JOIN [Расчётно-платёжная ведомость] ON Награждения.[Код премии] = [Расчётно-платёжная ведомость].[Премия сотруднику]) ON [Табель учёта рабочего времени].[№ табеля] = [Расчётно-платёжная ведомость].[№ табеля] WHERE (((Награждения.[Сумма в %])>0)) ORDER BY Награждения.[Сумма в %]; |
Запрос для расчётно-платёжной ведомости (пример выполнения представлен на рис. 4.26). Данный запрос выводит полностью всех сотрудников (по запрашиваемому времени с помощью диалогового окна) с указанием всех рабочих часов, тарифных ставок, отпусков, премий, удержаний - и в итоге подсчитывает каждому зарплату - (Вид>Режим SQL). Так же с помощью данного запроса формируются отчёты по зарплате:

Рис. 4.26. Пример выполнения запроса для расчётно-платёжной ведомости
SELECT Сотрудники.[Табельный №], Сотрудники.ФИО, Сотрудники.Должность, Сотрудники.Подразделение, [Тарифная сетка].[Тарифная ставка (руб)], [Табель учёта рабочего времени].[Дневные часы (часов)], [Табель учёта рабочего времени].[Ночные часы (часов)], [Табель учёта рабочего времени].[Праздничные часы (часов)], [Табель учёта рабочего времени].[Часов по болезни (часов)], [Табель учёта рабочего времени].[Часов по отгулам (часов)], Награждения.[Сумма в %], [Учёт удержаний из зарплаты].[Сумма удержания (в %)], [Расчётно-платёжная ведомость].[Дата начисления], ((((([Табель учёта рабочего времени]![Дневные часы (часов)]*[Тарифная сетка]![Тарифная ставка (руб)])+(([Табель учёта рабочего времени]![Ночные часы (часов)]/10)*[Тарифная сетка]![Тарифная ставка (руб)])+([Табель учёта рабочего времени]![Праздничные часы (часов)]*2*[Тарифная сетка]![Тарифная ставка (руб)])-((([Табель учёта рабочего времени]![Часов по болезни (часов)]*70)/100)*[Тарифная сетка]![Тарифная ставка (руб)]))*[Награждения]![Сумма в %])/100)*[Учёт удержаний из зарплаты]![Сумма удержания (в %)])/100 AS Зарплата FROM [Учёт удержаний из зарплаты] INNER JOIN ([Тарифная сетка] INNER JOIN ((Сотрудники INNER JOIN [Табель учёта рабочего времени] ON Сотрудники.[Табельный №] = [Табель учёта рабочего времени].[Табельный № сотрудника]) INNER JOIN (Награждения INNER JOIN [Расчётно-платёжная ведомость] ON Награждения.[Код премии] = [Расчётно-платёжная ведомость].[Премия сотруднику]) ON [Табель учёта рабочего времени].[№ табеля] = [Расчётно-платёжная ведомость].[№ табеля]) ON [Тарифная сетка].[Номер разряда] = [Расчётно-платёжная ведомость].[Номер разряда]) ON [Учёт удержаний из зарплаты].[Код удержания] = [Расчётно-платёжная ведомость].[Удержание зарплаты] WHERE (((((((([Табель учёта рабочего времени]![Дневные часы (часов)]*[Тарифная сетка]![Тарифная ставка (руб)])+(([Табель учёта рабочего времени]![Ночные часы (часов)]/10)*[Тарифная сетка]![Тарифная ставка (руб)])+([Табель учёта рабочего времени]![Праздничные часы (часов)]*2*[Тарифная сетка]![Тарифная ставка (руб)])-((([Табель учёта рабочего времени]![Часов по болезни (часов)]*70)/100)*[Тарифная сетка]![Тарифная ставка (руб)]))*[Награждения]![Сумма в %])/100)*[Учёт удержаний из зарплаты]![Сумма удержания (в %)])/100)>0)) ORDER BY Сотрудники.ФИО; |
Разработка диалогового приложения пользователя
Запуск данного приложения начинается с открытия главной кнопочной формы, которая называется «Меню» (представлена на рис.5.1). Эта форма включает следующие подразделы: учётно-оперативная информация (содержит запросы); справочные данные (справочники); отчёты (выходные документы о заработной плате); расчётно-платёжная ведомость (форма по которой автоматически начисляется зарплата). При нажатии на любую кнопку переходим в соответствующее меню.

Рис. 5.1. Форма «Меню»
Переходим в меню «Учётно-оперативная информация» (рис.5.2). Здесь доступны следующие пункты: запросы по отпускам, запросы по удержанию зарплаты, запросы по премиям, запросы о стаже сотрудников, запросы по рабочему времени. При нажатии соответствующего пункта переходим в следующее меню.

Рис. 5.2. Форма «Учётно-оперативная информация»
При выборе пункта «Запросы по отпускам» появляются следующие диалоговые окна (рис.5.3), которые предлагают ввести интересующие нас даты (когда той или иной сотрудник ходил в отпуск) - форма ввода даты так же показана на рис.5.4. После этого будет выдана соответствующая форма (рис.5.3). В неё входят следующие данные: о фамилиях сотрудников, их табельных номерах, о подразделениях где они работают и их должностях. Так же туда входят поля: «Вид отпуска»; «Дата отпуска» и «Количество дней отпуска».
Рис. 5.4. Диалоговое окно Рис. 5.3. Форма «Отпуска»

При выборе пункта «Запросы по удержанию зарплаты» из меню «Учётно-оперативная информация» мы попадаем в следующую форму «Удержания по зарплате» (рис.5.5). Она содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; наименование удержания и сумма его (выражена в процентах).

Рис. 5.5. Форма «Удержания по зарплате»
При выборе пункта «Запросы по премиям сотрудников» из меню «Учётно-оперативная информация» мы попадаем в следующую форму «Премии сотрудников» (рис.5.6). Она содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности, подразделение где он работает; наименование премии и сумма её (выражена в процентах).

Рис. 5.6. Форма «Премии сотрудников»

Рис. 5.7. Диалоговое окно
При выборе пункта «Запросы о стаже сотрудников» из меню «Учётно-оперативная информация» мы попадаем в следующее диалоговое окно (рис.5.7), где пользователю предлагается ввести возраст (стаж) сотрудника и далее мы попадаем в форму «Стаж работы сотрудников» (рис.5.8). Она содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; его год рождения, количество детей, образование и стаж работы.

Рис. 5.8. Форма «Стаж работы сотрудников».
При выборе пункта «Запросы по рабочему времени» из меню «Учётно-оперативная информация» мы попадаем в соответствующее меню (рис.5.9).

Рис. 5.9. Меню «Запросы по рабочему времени»
Здесь представлены следующие пункты: дневное время, ночное время, праздничное время, часы по болезни, запрос по отгулам. При выборе пункта «Дневное рабочее время» мы попадаем в соответствующую форму (рис.5.10). Она содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; дневные часы (отработанные сотрудником).

Рис. 5.10 Форма «Дневные рабочие часы»
При выборе пункта «Ночное рабочее время» мы попадаем в соответствующую форму (рис.5.11). Она содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; ночные часы (отработанные сотрудником).

Рис. 5.11. Форма «Рабочие часы ночные»
При выборе пункта «Праздничное рабочее время» мы попадаем в соответствующую форму (рис.5.12). Она содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; праздничные часы (отработанные сотрудником).

Рис. 5.12. Форма «рабочие часы (праздничные)».
При выборе пункта «Часов по отгулам» мы попадаем в соответствующую форму (рис.5.13). Она содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; часы по отгулам.

Рис. 5.13. Форма «Часы по отгулам»
При выборе пункта «Часов по болезни» мы попадаем в соответствующую форму (рис.5.14). Она содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает и количество больничных часов. Дальше нажимаем кнопку «Назад в главное меню», где выбираем следующее меню «Справочные данные» (рис.5.15).

Рис. 5.15. Меню «Справочные данные»

Рис. 5.14 Форма «Больничные часы».
Выбираем в меню пункт «Список сотрудников» и попадаем в соответствующую форму (рис.5.16.). Она содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; стаж работы; образование; серия и номер паспорта и год рождения сотрудника. Далее выбираем пункт «Список подразделений» и переходим в соответствующую форму (рис.5.17). В главной части вводится название подразделения, а в подчинённой форме вводятся данные о сотруднике.


Рис. 5.16 Форма «Список сотрудников» Рис. 5.17 Форма «Подразделения»
Далее переходим в пункт «Список должностей» - открывается сответствующая форма (рис.5.18). В неё входят поля: «Должность» и «Число вакансий». Подчинённая форма строится на основе таблицы «Сотрудники» и содержит информацию о фамилиях и табельных номерах сотрудников. Далее выбираем пункт «Ставки заработной платы» и переходим на форму (рис.5.19). Она содержит следующие поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; его номер разряда и тарифную ставку.
Рис. 5.18 Форма
«Список должностей» Рис.5.19 Форма «Ставки зарплаты»

Далее в главной кнопочной форме «Меню» выбираем пункт «Расчётно-платёжная ведомость» и переходим в соответствующее меню (рис.5.20). Выбираем пункт «Оформить ведомость на выдачу зарплаты» - переходим в меню (рис.5.21). В неё входят поля: табельный номер сотрудника, фамилия; наименование должности», подразделение где он работает; его разряд, номер расчётной ведомости; номер табеля рабочего времени; количество (дневных, ночных, праздничных, больничных, отгуленных) часов, наименование награждения, наименование, удержания.

Рис.5.20 Меню «Расчётная ведомость»

Рис.5.21 Форма «Расчётная ведомость»
Далее переходим в главное меню и выбираем пункт «Отчёты» и переходим в соответствующее меню. Нам на выбор предоставляется два отчёта по зарплате (они идентичны, но отличаются группировкой). При выборе пункта «….. с группировкой по сотрудникам» на экран выводятся диалоговые окна с предложением ввести интересующую на дату. После этого на экран выводится соответствующий отчёт (см. Приложение 1). Далее мы сможем вывести отчёт «…… с группировкой по подразделениям» (см. Приложение 2) - ход выполнения тот же самый. Т.о. работа с приложением завершена - из него можно выйти, выбрав в главном меню пункт «Выйти из приложения». Ниже на рис.5.22 приведена схема навигации диалога пользователя.

Рис.5.22. Пример схемы навигации диалога пользователя