Диплом: Разработка подсистемы контроля обслуживания заявот технической поддержки для ООО "МЭНПАУЭРСИАЙЭС"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
54
Для смены пароля пользовать должен вызвать окно смены пароля (рис.
42).
Рисунок 42 Окно смены пароля
Установить технический пароль, изменить пароль пользователя может
только администратор в форме Сотрудники
2.9 Алгоритм работы программы
При разработке приложения для работы различных сценариев в работе
базы данных широко использовался упрощённая реализация языка программи-
рования Visual Basic, встроенная в Microsoft Access.
При старте программы пользователю предлагается окно авторизации,
где необходимо выбрать пользователя и ввести пароль (рис. 43).
Рисунок 43 Вход в систему
55
При неправильном вводе выводится сообщение (рис. 44).
Рисунок 44 Сообщение об ошибке
Вход на ту или иную вкладку осуществляется в зависимости от роли
пользователя. В системе определены три роли: Администратор, Пользователь и
Диспетчер.
Администратору доступны все вкладки, Пользователю только вкладка
Заявки пользователя, диспетчеру: вкладка Заявки пользователя и вкладка Спи-
сок дел.
Ниже проводится код Visual Basic, который выполняется по нажатию на
кнопку ВХОД.
Private Sub Кнопка3_Click()
On Error GoTo Err_Кнопка3_Click
Dim s, s1, s2, s3, s5 As String
s2 = Me!Поле24
s3 = Me!ПолеСоСписком36.Column(2)
s5 = Me!ПолеСоСписком36.Column(4)
If (s2 <> s3) Then
MsgBox "Ошибка в пароле или не выбран пользователь"
Exit Sub
End If
If (s2 = s3) Then
s = Me!ПолеСоСписком36.Column(1)
KodSotrudnika = Me!ПолеСоСписком36.Column(0)
s1 = Me!ПолеСоСписком36.Column(0)
DoCmd.Close
stDocName = "ФормаПользователя"
stLinkCriteria = ""
DoCmd.OpenForm stDocName,, , stLinkCriteria
[Forms]!ФормаПользователя.OtnositPathFileBase = CurrentProject.Path &
"\Basedoc\"
[Forms]![ФормаПользователя]!Надпись10.Caption = s & " (" & s5 & ")"
56
[Forms]![ФормаПользователя]!Надпись11.Caption = s1
CountAll
If s5 = "Администратор" Then
[Forms]!ФормаПользователя.ВкладкаАдминистрирование.Visible = True
[Forms]!ФормаПользователя.ВкладкаСписокДел.Visible = True
[Forms]!ФормаПользователя.ВкладкаЗаявкиПользователя.Visible = True
[Forms]!ФормаПользователя.НаборВкладок14.Pages("ВкладкаАдминистрирование"
).SetFocus
If [Forms]!ФормаПользователя.IspOtnositPut Then
[Forms]!ФормаПользователя.DirBase.Caption =
[Forms]!ФормаПользователя.OtnositPathFileBase
Else
[Forms]!ФормаПользователя.DirBase.Caption =
[Forms]!ФормаПользователя.PathFileBase
End If
Else
If s5 = "Диспетчер" Then
[Forms]!ФормаПользователя.ВкладкаЗаявкиПользователя.Visible = True
[Forms]!ФормаПользователя.ВкладкаСписокДел.Visible = True
[Forms]!ФормаПользователя.ВкладкаАдминистрирование.Visible = False
[Forms]!ФормаПользователя.НаборВкладок14.Pages("ВкладкаСписокДел").SetFocus
Else
[Forms]!ФормаПользователя.ВкладкаЗаявкиПользователя.Visible = True
[Forms]!ФормаПользователя.ВкладкаСписокДел.Visible = False
[Forms]!ФормаПользователя.ВкладкаАдминистрирование.Visible = False
[Forms]!ФормаПользователя.НаборВкладок14.Pages("ВкладкаЗаявкиПользователя
").SetFocus
End If
End If
Else
MsgBox "Ошибка в пароле"
End If
Exit_Кнопка3_Click:
Exit Sub
Err_Кнопка3_Click:
MsgBox Err.Description
Resume Exit_Кнопка3_Click
End Sub
57
2.9.1 Алгоритм создания и выполнения заявки
Для создания заявки необходимо нажать кнопку “Создать заявку” на
вкладке пользователя. В открывшемся окне выбора категории заявок необхо-
димо выбрать категорию, и нажать на соответствующую кнопку. В открывшем-
ся окне необходимо выбрать тему заявки (рис. 45) (список тем автоматически
фильтруется по выбранной категории).
Рисунок 45 Выбор темы заявки
Фамилия инициатора заявки, дата создания, регистрационный номер
вставляется автоматически. Это обеспечивается следующим кодом:
Private Sub Кнопка5_Click()
On Error GoTo Err_Кнопка5_Click
Dim s, s1 As String
s = Код
s1 = ТипЗаявки
DoCmd.Close
stDocName = "МакросДобавлениеЗаявки2"
DoCmd.RunMacro stDocName
[Forms]!Заявка.ТемаЗаявки.RowSource = "SELECT ТемаЗаявки.Код,
ТемаЗаявки.ТемаЗаявки " _
& "FROM ТемаЗаявки " _
& "WHERE (((ТемаЗаявки.КодТипаЗаявки)=" & s & "))"
[Forms]!Заявка.НадписьТипЗаявки.Caption = s1
[Forms]!Заявка![ПодготовленКодСотрудника] = KodSotrudnika
Priznakproect = 2 ' признак для настройки доступных полей
Exit_Кнопка5_Click:
Exit Sub
Err_Кнопка5_Click:
MsgBox Err.Description
Resume Exit_Кнопка5_Click
58
End Sub
Далее необходимо ввести описание запроса. Если это необходимо, то
можно прикрепить к заявке в файлы. Это осуществляется в правой части бланка
заявки (рис. 46).
Рисунок 46 Операции с файлами
В окне показывается краткое имя файла. На самом деле при добавлении
файла к его имени добавляется номер заявки, дата, время через символ подчер-
кивания.
Пример вывода сообщения при добавлении файла (рис. 47).
Рисунок 47 Сообщение при добавлении файла
Данная операция обеспечивается следующим кодом из модуля
FileModule.
Функция добавления файлов
Sub AddFile(KodProekta, PathBaseFolder, aFileName, Optional ParentName As
String = "", _
Optional IdParentTable& = 0, Optional ReplaceFile As Boolean = False, Op-
tional IdFile& = 0)
If IsEmpty(aFileName) Then Exit Sub
Dim i&, NewId&, NewFile$, j&, TypeFile$, imfile$
Dim rs As Object, FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set rs = CreateObject("ADODB.RECORDSET")
rs.ActiveConnection = CurrentProject.Connection
59
rs.CursorLocation = 3
If Not ReplaceFile Then
rs.Open "select top 1 * from files",, 1, 3
For i = LBound(aFileName) To UBound(aFileName)
With rs
.AddNew
TypeFile = FSO.GetExtensionName(aFileName(i))
.Fields("ShortNameFiles") = FSO.GetFileName(aFileName(i))
imfile = FSO.GetBaseName(aFileName(i)) & "_" & KodProekta & "_" & For-
mat(Date, "mm_dd_yy") & "_" & Format(Time, "hh_mm_ss") & "." & TypeFile
.Fields("NameFiles") = imfile
.Update
NewId = .Fields("IdFiles").Value
For j = 1 To UBound(PathBaseFolder)
MsgBox aFileName(i) & "->" & imfile
NewFile = PathBaseFolder(j) & imfile
FSO.GetFile(aFileName(i)).copy NewFile
FSO.GetFile(NewFile).Attributes = 1
Next
.Fields("IdProecta") = KodProekta
.Update
End With
Next
MsgBox "Добавлено"
Else
rs.Open "select* from files where IdFiles=" & IdFile,, 1, 3
For i = LBound(aFileName) To UBound(aFileName)
With rs
.Fields("ShortNameFiles") = FSO.GetFileName(aFileName(i))
TypeFile = FSO.GetExtensionName(aFileName(i))
For j = 1 To UBound(PathBaseFolder)
FSO.DeleteFile CStr(PathBaseFolder(j) & .Fields("NameFiles").Value), True
NewFile = PathBaseFolder(j) & IdFile & "." & TypeFile'новое имя
FSO.GetFile(aFileName(i)).copy NewFile
FSO.GetFile(NewFile).Attributes = 1
Next
.Fields("NameFiles") = IdFile & "." & TypeFile
.Update
60
End With
Next
MsgBox "Заменено"
End If
rs.Close: Set rs = Nothing: Set FSO = Nothing
End Sub
Файлы хранятся либо по относительному пути: каталог BaseDoc\ в ката-
логе расположения базы данных BaseSupport.mdb, либо по абсолютному
(например, на файловом сервере)это настраивается администратором (рис.
48)
Рисунок 48 Окно настройки пути к файлам
Получение текущего относительного пути осуществляется следующей
строкой:
[Forms]!ФормаПользователя.OtnositPathFileBase = CurrentProject.Path &
"\Basedoc\"
Открытие файла на просмотр осуществляется нажатием кнопки
либо двойным щелчком по имени файла. Ниже приве-
ден код из модуля FileModule.
Sub OpenFile(PathBaseFolder, FileName, Edit)
Dim i&, b As Boolean, tmp$
Dim FSO As Object, OShell As Object
Set OShell = CreateObject("Wscript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
For i = 1 To UBound(PathBaseFolder)
If FSO.FileExists(PathBaseFolder(i) & FileName) Then
If Edit = 0 Then
FSO.GetFile(PathBaseFolder(i) & FileName).Attributes = 1
OShell.Run """" & PathBaseFolder(i) & FileName & """"
b = True
End If
If Edit = 1 Then
MsgBox """" & PathBaseFolder(i) & FileName & """"
FSO.GetFile(PathBaseFolder(i) & FileName).Attributes = 0
61
OShell.Run """" & PathBaseFolder(i) & FileName & """"
b = True
End If
Exit For
End If
Next
If Not b Then MsgBox "Файл не найден! " & tmp & FileName
End Sub
Удаление файла: кнопка . Ниже приведен код функции из
модуля FileModule.
Function KillFile(FolderPath, NameFile, iddelfiles)
Dim i&, FSO As Object, IdFile&
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
For i = LBound(FolderPath) To UBound(FolderPath)
FSO.DeleteFile CStr(FolderPath(i) & NameFile), True
Next
If Err.Number = 53 Then
MsgBox " Файл отсутствует в базе!" & vbCrLf & "Ссылка на файл будет уда-
лена!", 16, "R Dmitry"
Else
MsgBox "Файлы успешно удалены!" & vbCrLf & " Ссылка на файл удалена!",
64, "R Dmitry"
End If
IdFile = iddelfiles
CurrentProject.Connection.Execute "DELETE FROM Files WHERE IdFiles = " _
& IdFile
End Function
62
Диспетчер на вкладке Список дел видит свои открытые заявки и заявки
отдела. Слева пишется количество (рис. 49).
Рисунок 49 Вкладка Список дел
Подсчет и вывод количества обеспечивается следующим кодом из моду-
ля FileModule:
Sub CountAll()
Dim rs As Object, FSO As Object
Dim rstEmployees As Recordset
Set rs = CreateObject("ADODB.RECORDSET")
rs.ActiveConnection = CurrentProject.Connection
' Открывает табличный объект Recordset и отображает
rs.Open ("Select count(*) From Заявка Where (ПодготовленКодСотрудника="
& KodSotrudnika & ") and (Решить=0)")
[Forms]![ФормаПользователя]!НадписьКолМоихОткрытых.Caption = rs(0)
rs.Close
rs.Open ("Select count(*) From Заявка Where (ПодготовленКодСотрудника=" &
KodSotrudnika & ") and (Решить=-1)")
[Forms]![ФормаПользователя]!НадписьКолМоихЗакрытых.Caption = rs(0)
rs.Close
rs.Open ("Select count(*) From Заявка Where Решить=0")
[Forms]![ФормаПользователя]!ВсеОткрЗадания.Caption = rs(0)
rs.Close
rs.Open ("Select count(*) From Заявка Where (РешенКодСотрудника=" &
KodSotrudnika & ") and (Решить=0)")
[Forms]![ФормаПользователя]!МоиОткрЗадания.Caption = rs(0)
rs.Close
' АрхивЗаданийОтдела
63
rs.Open ("Select count(*) From Заявка Where Решить=-1")
[Forms]![ФормаПользователя]!АрхивЗаданийОтдела.Caption = rs(0)
rs.Close
' АрхивМоихЗаданий
rs.Open ("Select count(*) From Заявка Where (РешенКодСотрудника=" &
KodSotrudnika & ") and (Решить=-1)")
[Forms]![ФормаПользователя]!АрхивМоихЗаданий.Caption = rs(0)
rs.Close
End Sub
После просмотра и выполнения заявки диспетчер ставит галочку Решить
( )и пишет комментарий при закрытии. Заявка считается решенной.
Инициатор заявки, если считает что все вопросы по заявке решены – за-
крывает её ( ).
2.10 Требования к ПО и технические требования к рабочему месту
пользователя
2.10.1 Требования к аппаратуре передачи данных
Для функционирования Системы техподдержки должен использоваться
сервер организации.
Подключение рабочих станций с АРМ Пользователей Системы цен-
трального аппарата Банка должно осуществляться по ЛВС с минимальной про-
пускной способностью 100 Мбит/с.
2.10.2 Требования к техническому обеспечению АРМ
АРМ Системы техподдержки должны быть размещены на конфигураци-
ях, существующих АРМ ООО "МэнпауэрСиАйЭс".
Для успешного запуска и выполнения программы необходимы следую-
щие минимальные программные и аппаратные характеристики:
процессор с тактовой частотой 1500 МГц;
оперативная память не менее 128 МБ;
не менее 20 МБ свободного пространства на жестком диске;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран