- •Задание
- •Федеральное государственное бюджетное образовательное учреждение
- •Высшего образования
- •«Поволжский государственный университет телекоммуникаций и информатики»
- •Отзыв руководителя
- •Федеральное государственное бюджетное образовательное учреждение
- •Высшего образования
- •«Поволжский государственный университет телекоммуникаций и информатики»
- •Показатель качества вкр
- •Введение
- •Исследовательский раздел
- •Анализ предметной области
- •Выбор среды разработки
- •Общие сведения о программе
- •Рекомендуемые системные требования и оборудование
- •– Настройки работы программы учера рабочего времени
- •– Окно настройки подключения к удалелнному рабочему столу в операционной системе Windows 10
- •Используемые базы данных
- •– Схема данных
- •Запуск программы
- •– Вход в программу. Окно авторизации.
- •– Подменю 5. Справочники
- •– Подменю 6.Обеды
- •Работа с программой
- •– Изменение начала работы
- •Назначение должности
- •– Окно 3.2. Назначение должности
- •– Окно 4.1. Перенос сотрудников в отдел кадров
- •Назначение прав доступа
- •– Окно 4.2. Назначение прав доступа
- •– Окно «Администраторские права»
- •– Сообщение о запрете доступа
- •Активные пользователи
- •– Окно «Активные пользователи»
- •Настройки программ
- •– Окно «Настройки программ»
- •Смена пользователя
- •– Выбор другого размещения при смене пользователя.
- •Справочники
- •Операции и расценки
- •– Окно «Расценки для сделки»
- •Должности
- •– Окно «Должности»
- •– Отчет по обедам. Вывод в электронные таблицы.
- •Объекты субд
- •– Список таблиц в системе
- •Запросы
- •– Список запросов в системе
- •– Список форм в системе
- •– Используется русский язык
- •– Используется анлгийския язык
- •– Форма календаря
- •Програмная реализация проекта
- •Работа со сканером штрих кодов
- •– Сканерш трих кодов Honeywell Eclipse ms5145
- •– Штрих коды сотрудников
- •Заключение
- •Список использованных источников
- •Sys_Использование строк в запросах
- •Активные_пользователи
- •Должности
- •Должности_подразделения
- •Доступ_к_программе
- •Заказ_обедов
- •Замечания_к_работе
- •Назначеные_должности
- •Настройка_раб_места
- •Настройка_раб_места_урв
- •Настройки_программ
- •Настройки_программ_server
- •Начисления
- •Обеды_контроль
- •Объект блюда
- •Объект вид блюд
- •Объект драйвер принтера
- •Объект меню
- •Объект принтер
- •Объект подразделение
- •Объект рабочее место
- •Объект размещение
- •Объект размещение физлица
- •Объект физическое лицо
- •Объект физлицо время пароля
- •Объект_программы
- •Объект_программы_server
- •Операции_применение
- •Отработанное_время
- •Пользователи_права
- •Постоянные_сотрудники
- •Работники_склада
- •Расценки_для_сделки
- •Система
- •Система_таблиц
- •Т_операции
- •Т_совпадение_сотрудников
- •Т_Сотрудники_увольнение
- •Т_этикетки_для_обеда
- •Запросы
- •Q_cистема_таблиц
- •Q_Начальное_заполнение_прав
- •Q_неактивные_сотрудники_за_полгода
- •Q_Фамилия_и_о
- •Q_Фамилия_Имя_Отчество
- •Qout_Заказ_обедов_свод
- •Qsys_Использование строк в запросах
- •Qt_права
- •Должности_f
- •Заказ_обедов_f
- •Календарь_f
- •Назначение_должности_f
- •Настройки_программ_f
- •Операции_f
- •Отчет_по_обедам_f
- •Пароли_операторов_f
- •Печать_бейджей_f
- •Права_доступа_f
- •Сообщение_f
- •Сотрудники_на_обед_f
- •Табель_f
- •Выполнение запросов в транзакции
- •Заполнение элементов ActiveX
- •Изменение размеров форм
- •Календарь
- •Настройки программ
- •Создание нового модуля
- •Иллюстрационный материал
Должности_f
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
SetLanguage Shift
End Sub
Private Sub Form_Load()
KOD_DEPART_AfterUpdate
End Sub
Private Sub Form_Resize()
With Me![Должности_SF]
If Me.InsideWidth < 7670 Then Me.InsideWidth = 7670
If Me.InsideWidth > .Left + .WIDTH Then .WIDTH = Me.InsideWidth - .Left
If Me.InsideHeight < .Top + 24 Then Me.InsideHeight = .Top + 24
If Me.InsideHeight > .Top + 24 Then .HEIGHT = Me.InsideHeight - .Top - 24
End With
End Sub
Public Sub KOD_DEPART_AfterUpdate()
ControlAfterUpdate Me
OperationsUpdate
Me![Должности_SF].Requery
End Sub
Private Sub OperationsUpdate()
Dim q() As String, i%
i = 1: ReDim Preserve q(1 To i)
q(i) = "DELETE Т_должности_подразделения.* FROM Т_должности_подразделения"
i = i + 1: ReDim Preserve q(1 To i)
q(i) = "INSERT INTO Т_должности_подразделения ( KOD_DEPART, KOD_POSITION )" & vbNewLine
q(i) = q(i) & "SELECT Должности_подразделения.KOD_DEPART, Должности_подразделения.KOD_POSITION" & vbNewLine
q(i) = q(i) & "FROM [Т_Должности_F] INNER JOIN " & vbNewLine
q(i) = q(i) & " Должности_подразделения ON [Т_Должности_F].KOD_DEPART = Должности_подразделения.KOD_DEPART"
i = i + 1: ReDim Preserve q(1 To i)
q(i) = "INSERT INTO Т_должности_подразделения ( KOD_DEPART, KOD_POSITION )" & vbNewLine
q(i) = q(i) & "SELECT Т_должности_подразделения.KOD_DEPART, Должности.ID" & vbNewLine
q(i) = q(i) & "FROM Должности LEFT JOIN Т_должности_подразделения ON Должности.ID = Т_должности_подразделения.KOD_POSITION" & vbNewLine
q(i) = q(i) & "WHERE Т_должности_подразделения.KOD_POSITION Is Null"
If Not ExecuteTrans("изменение", q) Then Exit Sub
End Sub
Private Sub USE_AfterUpdate()
ControlAfterUpdate Me
Me![Должности_SF].Requery
End Sub
Заказ_обедов_f
Private Sub BUT_ADD_ALL_Click()
Dim q() As String, i As Integer
If Not polzovatel(25, True) Then Exit Sub
If Nz(Me![CHECK], False) Then Exit Sub
If MsgBox("Будет добавлен список всех сотрудников, заказывающих обед", vbInformation + vbDefaultButton1 + vbOKCancel, Me.Caption) = vbCancel Then Exit Sub
i = 1: ReDim Preserve q(1 To i)
q(i) = "INSERT INTO Заказ_обедов ( KOD_FL, [DATE] )" & vbNewLine
q(i) = q(i) & "SELECT Сотрудники_на_обеды.KOD_FL, Т_заказ_обедов_F.DATE_NOW" & vbNewLine
q(i) = q(i) & "FROM Сотрудники_на_обеды, Т_заказ_обедов_F"
If Not ExecuteTrans("обновление", q) Then Exit Sub
Me![Заказ_обедов_SF].Requery
Me.Requery
End Sub
Private Sub BUT_CALC_Click()
If Not polzovatel(25, True) Then Exit Sub
Dim q() As String, i As Integer
i = 1: ReDim Preserve q(1 To i)
q(i) = "DELETE Заказ_обедов.OBED, Заказ_обедов.*" & vbNewLine
q(i) = q(i) & "FROM Заказ_обедов" & vbNewLine
q(i) = q(i) & "WHERE (((Заказ_обедов.OBED) Is Null))"
i = i + 1: ReDim Preserve q(1 To i) 'чистим уволенных сотрудников
q(i) = "DELETE DISTINCTROW Обеды_контроль.*" & vbNewLine
q(i) = q(i) & "FROM Обеды_контроль LEFT JOIN " & vbNewLine
q(i) = q(i) & " Заказ_обедов ON Обеды_контроль.DATE_OBED = Заказ_обедов.DATE" & vbNewLine
q(i) = q(i) & "WHERE (Заказ_обедов.ID Is Null) AND " & vbNewLine
q(i) = q(i) & " (Обеды_контроль.DATE_OBED<Date())"
i = i + 1: ReDim Preserve q(1 To i) 'чистим уволенных сотрудников
q(i) = "DELETE [Объект физическое лицо].UVOLEN, Сотрудники_на_обеды.*" & vbNewLine
q(i) = q(i) & "FROM Сотрудники_на_обеды INNER JOIN " & vbNewLine
q(i) = q(i) & " [Объект физическое лицо] ON Сотрудники_на_обеды.KOD_FL = [Объект физическое лицо].ID_FIZICHESK_FACE" & vbNewLine
q(i) = q(i) & "WHERE [Объект физическое лицо].UVOLEN=True"
If Not ExecuteTrans("обновление", q) Then Exit Sub
Me![Заказ_обедов_SF].Requery
Me.Requery
End Sub
Private Sub BUT_MINUS_Click()
Me![DATE_NOW] = DMax("DATE_OBED", "Обеды_контроль", "DATE_OBED<" & SQL_date(Me![DATE_NOW]))
DATE_NOW_BeforeUpdate (0)
DATE_NOW_AfterUpdate
End Sub
Private Sub BUT_PLUS_Click()
Me![DATE_NOW] = Nz(DMin("DATE_OBED", "Обеды_контроль", "DATE_OBED>" & SQL_date(Me![DATE_NOW])), Me![DATE_NOW] + 1)
DATE_NOW_BeforeUpdate (0)
DATE_NOW_AfterUpdate
End Sub
Private Sub BUT_PRINT_Click()
If Not polzovatel(25, True) Then Exit Sub
Dim q() As String, i As Integer
i = 0: ReDim q(0 To i)
q(i) = "DELETE Т_этикетки_для_обеда.* FROM Т_этикетки_для_обеда"
For i = 1 To 4
ReDim Preserve q(0 To i)
q(i) = "INSERT INTO Т_этикетки_для_обеда ( FIO, OBED, [DATE], NAIMEN )" & vbNewLine
q(i) = q(i) & "SELECT q_Фамилия_И_О.FIO, Choose(Заказ_обедов.OBED,""A"",""B"",""C"",""D"") & " & Quoted(" - " & i & ": " & Choose(i, "Салат", "Первое", "Второе", "Выпечка")) & ", format(Заказ_обедов.DATE,""ddd - dd mmmm""), [Объект блюда].[NAIMEN]" & IIf(i = 3, " & "" + ""+[Объект блюда_1].[NAIMEN]", "") & vbNewLine
q(i) = q(i) & "FROM (((Заказ_обедов INNER JOIN " & vbNewLine
q(i) = q(i) & " q_Фамилия_И_О ON Заказ_обедов.KOD_FL = q_Фамилия_И_О.ID) INNER JOIN " & vbNewLine
q(i) = q(i) & " Меню ON Заказ_обедов.DATE = Меню.DATE) LEFT JOIN " & vbNewLine
q(i) = q(i) & " [Объект блюда] ON Меню." & Choose(i, "SALAT", "PERVOE", "VTOROE", "VIPECHKA") & " = [Объект блюда].ID) " & vbNewLine
If i = 3 Then
q(i) = q(i) & " LEFT JOIN [Объект блюда] AS [Объект блюда_1] ON Меню.GARNIR = [Объект блюда_1].ID" & vbNewLine
End If
q(i) = q(i) & "WHERE (Заказ_обедов.DATE=" & SQL_date(Me![DATE_NOW]) & ") AND " & vbNewLine
q(i) = q(i) & " (Заказ_обедов.OBED<>0) AND " & vbNewLine
q(i) = q(i) & " (Заказ_обедов." & Choose(i, "SALAT", "PERVOE", "VTOROE", "VIPECHKA") & "=True)"
Next
If Not ExecuteTrans("этикетки на обеды", q) Then Exit Sub
If Me![SVOD] Then DoCmd.OpenReport "Обеды_свод_R", acViewPreview: Exit Sub
If Me![KOD_PRINTER] = 5 Then DoCmd.OpenReport "Обеды_R", acViewPreview: Exit Sub
If (Me![KOD_PRINTER] = 3) Or (Me![KOD_PRINTER] = 4) Or (Me![KOD_PRINTER] = 37) Or (Me![KOD_PRINTER] = 38) Then
PrintLabel "Этикетки_обед_маленький_R", acViewPreview, Me![KOD_PRINTER]
Else
PrintLabel "Этикетки_бейджик_45x75_R", acViewPreview, Me![KOD_PRINTER]
End If
End Sub
Private Sub CHECK_BeforeUpdate(Cancel As Integer)
Cancel = Not polzovatel(25, True)
End Sub
Private Sub DATE_NOW_AfterUpdate()
ControlAfterUpdate Me
Me.Requery
Me![Заказ_обедов_SF].Requery
Me![DATE_NOW].Requery
End Sub
Private Sub DATE_NOW_BeforeUpdate(Cancel As Integer)
If Not IsNull(DLookup("DATE_OBED", "Обеды_контроль", "DATE_OBED=" & SQL_date(Me![DATE_NOW]))) Then Exit Sub
Dim q() As String, i As Integer
i = 1: ReDim q(1 To i)
q(i) = "INSERT INTO Обеды_контроль ( DATE_OBED )" & vbNewLine
q(i) = q(i) & "SELECT " & SQL_date(Me![DATE_NOW])
If Not ExecuteTrans("этикетки на обеды", q) Then Exit Sub
End Sub
Private Sub DATE_NOW_DblClick(Cancel As Integer)
OpenCalendar Me
End Sub
Private Sub Form_Current()
Me![Заказ_обедов_SF].Enabled = Not Nz(Me![CHECK], False)
Me![CHECK].Caption = IIf(Nz(Me![CHECK], False), "Закрыто", "Открыто") & vbNewLine & Me![FL_CONTROL]
Me![CHECK].ForeColor = IIf(Nz(Me![CHECK], False), vbRed, vbBlack)
End Sub
Private Sub Form_Load()
DATE_NOW_BeforeUpdate (0)
End Sub
Private Sub Form_Resize()
StdResize Me![Заказ_обедов_SF], Me
End Sub
Private Sub CHECK_AfterUpdate()
Dim MSG As String
MSG = IIf(Me![CHECK], "Будет завершен заказ обедов на " & Me![DATE_NOW] & vbNewLine & "Все изменения будут запрещены", "Будет разрешен заказ обедов на " & Me![DATE_NOW])
If MsgBox(MSG, vbCritical + vbDefaultButton2 + vbOKCancel) <> vbOK Then FormUndo Me: Exit Sub
Me![KOD_FL] = DLookup("KOD_USER", gWORK_PLACE)
Me![DATESTAMP] = Now()
ControlAfterUpdate Me
Me.Requery
End Sub
