Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДР_М (2).docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
8.59 Mб
Скачать
  1. Програмная реализация проекта

    1. Работа со сканером штрих кодов

Для работы программы УРВ необходим сканер штрих кодов, корый позволяет производить сканирование бейджика со штрих кодом сотрудника. Пример такого сканера представлен на Рис. 4.1.1.1.1

          1. – Сканерш трих кодов Honeywell Eclipse ms5145

Такие сканеры еще называются клавиатурными, по причине того, что сигнал с них поступает в виде последовательности ASCII символов, аналогичным вводу с клавиатуры.

Сканеры штрих кодов имеют свой собственный микрокод, кототый возможно запрограммировать специальными сервисными штрих кодами. В компании ООО «Роял Агро» для работы со сканерами принято использовать программирование начального символа кода клавиши F6. При распозновани этого кода, сканер начинает понимать, что штрих код родной и происходит распознавание символов.

Для распознавания считанного штрих кода необходимо распозновать полученную со сканера строку символов. Эта операция выполняется через функцию ShCodeRead.

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

Public Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If ShCodeRead(KeyCode) = gSH_CODE_POLZ Then Scan_querry (gSTR_SH_CODE)

End Sub

Процедура будет вызывать для каждого символа функцию

Public Function ShCodeRead(KeyCode As Integer) As Integer

В которую передается значение нажатой клавиши. Т.к. строка, полученная со сканера штрих кода является набором символов, то эта функция будет вызвана много раз. Каждый цикл проверяет значения символов и запоминает необходимые нам символы в публичную переменную gSTR_SH_CODE.

В компании ООО «Роял Агро» имеются собственные штрих-коды для товара, введены штрих коды для бейджиков сотрудников. Поэтому функция проверяет принадлежность штрих кода к категории сотрудников. Для этого штрих код должнен содержать в своем начале строки SS4 (Рис. 4.1.1.1.2) (Сотрудник склада).

Public Const gTEST_STR3 = "SS4" 'Префикс штрих-кода бэйджика

          1. – Штрих коды сотрудников

Поэтому после полного разбора строки, на выходе функции получаем значение, к котором относится считанный штрих код. Нас интересует только наш штрих код с кодом сотрудника склада, поэтому после мы получаем код сотрудника после разбора строки.

После произойдет выполнение процедуры Scan_querry (Приложение В -) которая производит действия по отметке работника.

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

В том случае, если у сотрудника есть присвоенный код в системе и ему назначили должность, будут происходить проверки наличия сотрудника на рабочем месте. Если он уже был отмечен, то тут произойдет его отметка с работы и в случае сдельной работы ему предложит заполнить количество сделанной работы. Если сотрудника небыло на рабочем месте, то запишется время прихода на работу. И системя сообщит имя работника, который был отмечен. Для того, чтобы не происходило одновременной отметки сотрудника на нескльких местах, установлена проверка нахождения на рабочем месте в течении определенного времени. Если произвести отметку через несколько минут после прихода на рабочее место, то система сообщит о том, что сотрудник отработал слишком мало времени и попросит ручного подтверждения у оператора, который производит сканирование сотрудника.

Помимо отметки сотрудника по его бейждику реализован поиск в формах при сканировании. Чтобы не искать сотрудника в списках по фамилии, можно просто считать штрих код с бейждика и в форме произойдет выбор этого сотрудника. Реализованно это в расчет отработки и назначения должности.