Диплом: Автоматизация приема заявок на ремонт и модернизацию ПК в АО НПО "Турботехника"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
128
Приложение Д. Экранные формы разработанного программного
продукта
Рисунок Д.1 Главная форма программы
Рисунок Д.2 Выбор отдела
Рисунок Д.3 Справочник Оборудование
129
Рисунок Д.4 Справочник Статус заявки
Рисунок Д.5 Учет запчастей на складе
Рисунок Д.6 Пользователи
130
Рисунок Д.7 Выбор оборудования
Рисунок Д.8 Информация по заявке
131
Рисунок Д.9 Информация по заявке
Рисунок Д.10 Учет сотрудников
132
Рисунок Д.11 Наряд на ремонт
133
Приложение Е. Часть программного кода разработанного продукта
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <tchar.h>
#include <Midas.hpp>
#include <Datasnap.DSIntf.hpp>
//---------------------------------------------------------------------------
USEFORM("udmServer.cpp", dmServer); /* TDataModule: File Type */
USEFORM("udssmRemoteData.cpp", dssmRemoteData); /* TDSServerModule: File Type */
USEFORM("ufMain.cpp", fMain);
//---------------------------------------------------------------------------
WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
try
{
RegisterMidasLib(DllGetClassObject);
Application->Initialize();
Application->MainFormOnTaskBar = true;
Application->CreateForm(__classid(TfMain), &fMain);
Application->CreateForm(__classid(TdmServer), &dmServer);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#pragma hdrstop
#include "uConnectionInfo.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
134
#pragma hdrstop
#include "udmServer.h"
#include "udssmRemoteData.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TdmServer *dmServer;
//---------------------------------------------------------------------------
__fastcall TdmServer::TdmServer(TComponent* Owner)
: TDataModule(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TdmServer::DSServerClassGetClass(TDSServerClass *DSServerClass,
TPersistentClass &PersistentClass)
{
// Определяем серверный класс
PersistentClass = __classid(TdssmRemoteData);
}
//---------------------------------------------------------------------------
void __fastcall TdmServer::DSAuthenticationManagerUserAuthenticate(TObject *Sender,
const UnicodeString Protocol, const UnicodeString Context, const
UnicodeString User,
const UnicodeString Password, bool &valid, TStrings *UserRoles)
{
// valid - флаг, определяющий, разрешить пользователю вход на сервер или
запретить;
// в нашем случае он определяется исходя из того, найден ли пользователь в БД
// по логину и паролю или нет.
valid = false;
// Блокировка пользователя;
bool Blocked = false;
// Тип пользователя;
int UserTypeKey;
// Код пользователя;
int UserKey = GetUserKey (User, Password, Blocked, UserTypeKey);
// Определяем, "впускать ли пользователя в систему, или нет"
valid = UserKey > 0;
// Если блокировка установлена, то выбрасываем исключение;
if (Blocked == true) throw new Exception ("Вход в систему невозможен. Ваш аккаунт
заблокирован.");
// Если валидация не установлена, то выбрасываем исключение;
if (valid == false) throw new Exception ("Неверная пара логин/пароль.");
// Если все проверки пройдены, ищем соответствующий элемент списка,
// который связан идентификатором текущего потока (ThreadId);
TConnectionInfo *CI = ConnectionList->GetConnectionKey (GetCurrentThreadId());
// Записываем "код пользователя";
CI->UserKey = UserKey;
// Записываем "тип пользователя";
135
CI->UserTypeKey = UserTypeKey;
}
//---------------------------------------------------------------------------
TADOTable* __fastcall TdmServer::GetTable (UnicodeString TableName)
{
// Создаем объект;
TADOTable* Result = new TADOTable (NULL);
try
{
// Для созданного объекта определяем соединение с базой данных;
Result->Connection = adoConnection;
// Указываем имя таблицы;
Result->TableName = TableName;
// Открываем набор;
Result->Open ();
// Возвращаем результат;
return Result;
}
catch (...)
{
//
// В случае ошибки:
// Разрушаем объект
Result->Free ();
// Передаем ошибку в главный обработчик;
throw;
}
}
//---------------------------------------------------------------------------
TADOQuery* __fastcall TdmServer::GetQuery (UnicodeString SQL)
{
// Создаем объект;
TADOQuery* Result = new TADOQuery (NULL);
try
{
// Для созданного объекта определяем соединение с базой данных;
Result->Connection = adoConnection;
// Определяем запрос SQL;
Result->SQL->Text = SQL;
TStringList *L = new TStringList ();
try
{
//
if (FileExists(ExtractFilePath(Application->ExeName) +
"\\SelectHistory.txt"))
{
L->LoadFromFile(ExtractFilePath(Application->ExeName) +
"\\SelectHistory.txt");
}
L->Add("[" + DateTimeToStr(Now ()) + "]");
L->Add(SQL);
136
L->SaveToFile(ExtractFilePath(Application->ExeName) +
"\\SelectHistory.txt");
}
catch (...)
{
}
// Открываем набор;
Result->Open ();
return Result;
}
catch (...)
{
// В случае ошибки:
// Разрушаем объект
Result->Free ();
// Передаем ошибку в главный обработчик;
throw;
}
}
//---------------------------------------------------------------------------
int __fastcall TdmServer::ExecQuery (UnicodeString SQL)
{
// Создаем объект;
TADOQuery* Result = new TADOQuery (NULL);
try
{
// Для созданного объекта определяем соединение с базой данных;
Result->Connection = adoConnection;
// Определяем запрос SQL;
Result->SQL->Text = SQL;
// Возвращаем результат выполнения запроса;
int Value = Result->ExecSQL();
// Освобождаем память;
Result->Free ();
//
return Value;
}
catch (...)
{
// В случае ошибки:
// Разрушаем объект
Result->Free ();
// Передаем ошибку в главный обработчик;
throw;
}
}
//---------------------------------------------------------------------------
int __fastcall TdmServer::GetUserKey (UnicodeString Login, UnicodeString Password, bool
&Blocked, int &UserType)
{
// Создаем объект;
137
// Производим поис по логину без учета регистра символов;
TADOQuery *T = GetQuery ("select * from [user] where Login = " + QuotedStr
(Login));
try
{
// проверяем, найдена ли строка, удовлетворяющая условию;
if (T->RecordCount > 0)
{
// Проверяем пароль (уже с учетом регистра символов)
if (T->FieldByName("Password")->AsString == Password)
{
// Провера логина и пароля прошла успешно;
// Возвращаем тип пользователя
UserType = T->FieldByName("ID_User_type")->AsInteger;
// Возвращаем значение блокировки пользователя;
Blocked = T->FieldByName("Block")->AsBoolean;
// Возвращаем код пользователя;
int UserKey = T->FieldByName("ID")->AsInteger;
// Освобождаем память ("Сотри его из memory")
T->Free ();
// Возвращаем код пользователя
return UserKey;
}
}
}
catch (...)
{
//
// В случае ошибки:
// Разрушаем объект
T->Free ();
// Передаем ошибку в главный обработчик;
throw;
}
return 0;
}
//---------------------------------------------------------------------------
UnicodeString __fastcall TdmServer::GetDataBaseName ()
{
// Загрузка имени файла базы данных из настроек (Settings.ini)
UnicodeString Result = FSettings->ReadString(c_Settings_Section_DB, "Initial File
Name", "");
// Извлекаем из этого имени Path.
// И если Path пусто, то добавляем к этому имени путь приложения;
if (ExtractFilePath(Result) == "")
{
Result = ExtractFilePath(Application->ExeName) + Result;
}
return Result;
}
void __fastcall TdmServer::DataModuleCreate(TObject *Sender)

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

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