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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
138
{
// Создаем объект;
FConnectionList = new TConnectionList ();
// Создаем объект;
FSettings = new TIniFile (ExtractFilePath (Application->ExeName) + "\\" +
c_Settings_File);
// Уведомить разработчика о том, что, либо он забыл закрыть соединения,
// либо IDE устраивает самодеятельность;
if (adoConnection->Connected == true)
{
ShowMessage ("adoConnection.Connected = true. Приложение будет
закрыто.");
Application->Terminate ();
}
// Определение строки соединения с базой данных;
adoConnection->ConnectionString = "Provider=SQLOLEDB;Integrated
Security=SSPI;Persist Security Info=False;Initial Catalog="
+ FSettings->ReadString(c_Settings_Section_DB, "Initial Catalog", "Base1129")
+ ";" +
"Data Source=" + FSettings->ReadString(c_Settings_Section_DB, "Data Source",
".\sqlexpress") + ";" +
"Initial File Name=" + GetDataBaseName() + ";";
try
{
//
// Загружаем из настроек (Settings.ini) порт сервера;
DSTCPServerTransport->Port = FSettings-
>ReadInteger(c_Settings_Section_Server, "Port", 5000);
// Запускаем сервер;
DSServer->Start ();
// Открываем соединение с базой данных;
adoConnection->Connected = true;
}
catch (Exception &E)
{
// В случае ошибки:
Application->MainForm->Show ();
// Показываем сообщения (об ошибках);
MessageDlg (E.Message, mtError, TMsgDlgButtons () << mbOK, 0);
MessageDlg ("Приложение будет закрыто.", mtInformation, TMsgDlgButtons
() << mbOK, 0);
// Закрываем приложение;
Application->Terminate ();
}
}
//---------------------------------------------------------------------------
void __fastcall TdmServer::DSTCPServerTransportConnect(TDSTCPConnectEventObject
&Event)
{
// Создаем объект с ключем CurrentThreadId;
139
TConnectionInfo *CI = ConnectionList->AddConnection(GetCurrentThreadId ());
// Пишем его IP
CI->IP = Event.Channel->ChannelInfo->ClientInfo.IpAddress;
}
//---------------------------------------------------------------------------
void __fastcall TdmServer::DSTCPServerTransportDisconnect(TDSTCPDisconnectEventObject
Event)
{
// Удаляем соединение;
ConnectionList->DelConnection(GetCurrentThreadId ());
}
//---------------------------------------------------------------------------
void __fastcall TdmServer::DataModuleDestroy(TObject *Sender)
{
// Останавливаем работу сервера;
DSServer->Stop();
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "udssmRemoteData.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma classgroup "System.Classes.TPersistent"
#pragma resource "*.dfm"
//---------------------------------------------------------------------------
__fastcall TdssmRemoteData::TdssmRemoteData(TComponent* Owner)
: TDSServerModule(Owner)
{
}
//----------------------------------------------------------------------------
// Функция перевода типа DateTime в MS Access DateTime
UnicodeString __fastcall DateToAccessDate (TDateTime Value)
{
//
UnicodeString Date = "";
Date = "#" + FormatDateTime("MM", Value) + "/" + FormatDateTime("DD", Value) +
"/" + FormatDateTime("YYYY", Value) + " #";
return Date;
}
void __fastcall TdssmRemoteData::SetCustomSQL (UnicodeString Value)
{
//
140
UserIsAdmin();
FCustomSQL = Value;
}
int __fastcall TdssmRemoteData::RequestCount()
{
//
UnicodeString F = RequestAccessSQLFilter();
if ( (F != "") ) F = " where " + F;
TADOQuery * Q = dmServer->GetQuery("select * from request" + F);
try
{
//
int R = Q->RecordCount;
Q->Free();
return R;
}
catch (...)
{
Q->Free();
throw;
}
}
double ffabs (double X)
{
//
if (( X < 0 )) X = X*(-1);
return X;
}
void __fastcall TdssmRemoteData::EquipmentSetStand (int EquipmentID, bool Stand)
{
//
TADOQuery *Q = dmServer->GetQuery("select * from equipment where id = " +
IntToStr(EquipmentID));
try
{
//
if ( Q->RecordCount == 0 )
throw new Exception (c_Msg_Record_not_find);
if ( (Q->FieldByName("stand")->IsNull == true ) || (Q->FieldByName("stand")-
>AsBoolean != Stand) )
{
Q->Edit();
Q->FieldByName("stand")->AsBoolean = Stand;
Q->Post();
}
}
catch (...)
{
Q->Free();
141
}
}
bool __fastcall TdssmRemoteData::EquipmentGetStand (int EquipmentID)
{
//
TADOQuery * Q = dmServer->GetQuery("select * from equipment where id = " +
IntToStr(EquipmentID));
try {
//
if ( Q->RecordCount == 0 )
throw new Exception(c_Msg_Record_not_find);
bool R = Q->FieldByName("stand")->AsBoolean;
Q->Free();
return R;
} catch (...)
{
Q->Free();
throw;
}
}
UnicodeString QtoP (UnicodeString S)
{
//
UnicodeString Result = S;
for (int I = 1; I <= Result.Length(); I ++)
{
if ( Result[I] == ',' ) Result [I] = '.';
}
return Result;
}
void __fastcall TdssmRemoteData::EquipmentDowntimeAdd (int EquipmentID, double
Downtime)
{
//
TADOQuery * Q = dmServer->GetQuery("select id, downtime from equipment where id
= " + IntToStr(EquipmentID));
try {
//
if ( Q->RecordCount == 0 )
throw new Exception(c_Msg_Record_not_find);
dmServer->ExecQuery("update equipment SET downtime = " + QuotedStr
(QtoP(FloatToStr (Q->FieldByName("downtime")->AsFloat + Downtime))) + " where id = " +
IntToStr(EquipmentID));
{
Q->Edit();
142
Q->FieldByName("downtime")->AsFloat = Q-
>FieldByName("downtime")->AsFloat + Downtime;
Q->Post();
}
Q->Free();
} catch (...) {
Q->Free();
throw;
}
}
void __fastcall TdssmRemoteData::EquipmentSelect (int EquipmentID)
{
//
FEquipmentID = EquipmentID;
}
void __fastcall TdssmRemoteData::SpareStorage (int SpareID, double Count)
{
//
if ( Count == 0 )
throw new Exception("Количество запчастей не может быть равно нулю");
TADOQuery * Q = dmServer->GetQuery("select * from spare where id = " +
IntToStr(SpareID));
try {
//
if ( Q->RecordCount == 0 )
throw new Exception(c_Msg_Record_not_find);
Q->Edit();
if ( (Count < 0) )
{
//
if ( Q->FieldByName("spare_count")->AsFloat < ffabs(Count) )
throw new Exception("На складе нет такого количества запчастей");
Q->FieldByName("spare_count")->AsFloat = Q->FieldByName("spare_count")-
>AsFloat + Count;
}
else
{
//
Q->FieldByName("spare_count")->AsFloat = Q->FieldByName("spare_count")-
>AsFloat + Count;
}
Q->Post();
throw;
} catch (...) {
Q->Free();
throw;
}
}
143
void __fastcall TdssmRemoteData::RequestAddSpare (int SpareID, double Count)
{
//
UserIsSubdivisionUser();
if ( Count <= 0 )
throw new Exception("Количество - целое, положительное число");
SpareStorage(SpareID, -Count);
TADOQuery * Q = dmServer->GetQuery("select * from request_spares where id = 0");
try
{
//
Q->Insert();
Q->FieldByName("id_request")->AsInteger = FRequestID;
Q->FieldByName("id_spare")->AsInteger = SpareID;
Q->FieldByName("date")->AsDateTime = Now();
Q->FieldByName("spare_count")->AsFloat = Count;
Q->Post();
Q->Free();
}
catch(...)
{
//
SpareStorage(SpareID, Count);
Q->Free();
throw;
}
}
void __fastcall TdssmRemoteData::RequestDeleteSpare (int RequestSparesID)
{
//
UserIsSubdivisionUser();
TADOQuery *Q = dmServer->GetQuery("select * from request_spares where id = " +
IntToStr(RequestSparesID));
try {
//
if ( Q->RecordCount == 0 )
throw new Exception(c_Msg_Record_not_find);
SpareStorage(Q->FieldByName("id_spare")->AsInteger, Q-
>FieldByName("spare_count")->AsFloat);
Q->Delete();
Q->Free();
} catch (...)
{
Q->Free();
throw;
}
}

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

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