Главное меню

Карта сайта
Главная
Курсовые работы
Отчеты по практикам
Лабораторные работы
Методические пособия
Рефераты
Дипломы
Лекции



Информационная система учета и поверки

 

Задача подсчет загруженности сотрудника

Цель: рассчитать процент загруженности любого поверяющего исходя из месячной нормы – 168 часов.

Решения этой задачи необходимо для равномерного распределения нагрузки между поверяющими. Если загруженность меньше ста процентов, работник не выполняет месячную норму. Загруженность больше ста процентов,  говорит о том что на поверяющего наложена слишком большая нагрузка и необходимо пересмотреть план будущих поверок.

Для решения этой задачи был написан программный код, выполняемый при нажатии кнопки «Подсчитать загруженность поверяющего». После нажатия кнопки появляется окно, куда пользователь вводит код интересующего его сотрудника. После чего выводиться сообщение с результатом. Если выбранный поверяющий не поверил ниодного прибора за месяц выводится сообщение: «Не выполнял поверок в этом месяце». Если введены неверные данные кода сотрудника, то выводится окно с сведением об ошибке. В этом случае код поверяющего необходимо ввести заново.

Подсчет загруженности осуществляется по формуле: общее количество часов поверки за месяц делится на месячную норму (168 часов) и умножается на сто процентов.

Рис.12. Задача подсчет загруженности сотрудника.

Программный код:

Private Sub Кнопка16_Click()

Dim dbs As Database

Dim tbl As Recordset

Dim tbu As Recordset

Dim s As Integer

Dim k As String

Set dbs = CurrentDb

Set tbl = dbs.OpenRecordset("Поверка", dbOpenDynaset)

Set tbu = dbs.OpenRecordset("Кадры", dbOpenDynaset)

If tbl.EOF Then Exit Sub

tbl.MoveFirst

tbl.MoveLast

d = tbl.RecordCount

ch = Format(Now, "dd/mm/yy")

y = InputBox("введите код поверяющего")

If y > 4 Then MsgBox "Неверные данные"

k = "Не выполнял поверок в этом месяце"

tbl.FindFirst ("Код поверяющего]=" & y)

For i = 1 To d

dat = tbl![Дата последней поверки]

t = tbl![Время поверки]

If DateDiff("m", dat, ch, vbMonday) = 1 Then

s = s + t

Zag = (s * 100) / 168

End If

tbl.FindNext ("[Код поверяющего]=" & y)

Next i

If Zag = 0 Then

Zag = k

MsgBox k

Else

Form_Кадры1.Поле17 = Zag

MsgBox Zag & "% Загруженность данного сотрудника"

End If

Form_Кадры1.Поле19 = y

tbl.Close

Set dbs = Nothing

End Sub