📄 enguardmainunit.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "EnguardMainUnit.h"
#include "ObjectManageUnit.h"
#include "DeptManageUnit.h"
#include "EmployeeManageUnit.h"
#include "DeviceAccessUnit.h"
#include "DatabaseConnectUnit.h"
#include "DeviceManageUnit.h"
#include "EnguardRoleUnit.h"
#include "OperateLogUnit.h"
#include "EnguardEventLogUnit.h"
#include "EmployeeViewUnit.h"
#include "BaseConvertorUnit.h"
#include "LogAnalyseUnit.h"
#include "LoginUnit.h"
#include "ChangePasswordUnit.h"
#include "DeviceOpenUnit.h"
#include "SystemConfigSetUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TEnguardMainFrm *EnguardMainFrm;
//---------------------------------------------------------------------------
__fastcall TEnguardMainFrm::TEnguardMainFrm(TComponent* Owner)
: TBaseViewFrm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::FormCreate(TObject *Sender)
{
ConfigFile = ExtractFileDir(Application->ExeName)+"\\ConfigFile\\SysConfig.xml";
TConfigInfoXML aConfigInfoXML(ConfigFile);
if (!aConfigInfoXML.GetConfigInfo(aSystemConfigInfo))
{
aConfigInfoXML.GetDefaultConfigInfo(aSystemConfigInfo);
}
pEventEngine = GetEventEngineInstance();
lvRecordInfo->OnColumnClick = OnRecordInfoColumnClick;
lvRecordInfo->OnCompare = OnRecordInfoCompare;
lvWaringEvent->OnColumnClick = OnRecordInfoColumnClick;
lvWaringEvent->OnCompare = OnRecordInfoCompare;
ClearSpeedButtonCaption();
lEventCount = 0;
lWarningEventCount = 0;
int lCount,lActiveCount;
pEventEngine->GetDeviceCount(lCount,lActiveCount);
sbInfo->Panels->Items[1]->Text = " 设备总数:" + AnsiString(lCount)+ " | 启用监控设备个数:" + AnsiString(lActiveCount);;
sbInfo->Panels->Items[2]->Text = " 共监控到门禁事件:" + AnsiString(lWarningEventCount+lEventCount) + " 起 | 其中报警:"+AnsiString(lWarningEventCount)+" 起";
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::FormDestroy(TObject *Sender)
{
//释放相关对象实例
pEventEngine->StopEngine();
if (pEventEngine)
delete pEventEngine;
TDeviceAccess* pDevice = GetDeviceAccessInstance();
delete pDevice;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::FormShow(TObject *Sender)
{
SetInitPanelVisible(false);
SetWarningPanelSytle(aSystemConfigInfo.ViewConfig.WarningPanelStyle);
this->Caption = AnsiString(aSystemConfigInfo.CompanyName) + "指纹门禁管理系统 V1.2.0";
//启动事件引擎
pEventEngine->StartEngine();
bool lEngineActive = pEventEngine->IsActive();
if (lEngineActive)
{
aEngineStatus->Caption = "停用监控 &S";
aEngineStatus->Hint = "停用监控";
spbnEngineStatus->Glyph = NULL;
mlState->GetBitmap(0,spbnEngineStatus->Glyph);
}
else
{
aEngineStatus->Caption = "启用监控 &S";
aEngineStatus->Hint = "启用监控";
spbnEngineStatus->Glyph = NULL;
mlState->GetBitmap(1,spbnEngineStatus->Glyph);
}
trEventLog->Enabled = true;
AnsiString lStatus = "登录员工:";
if(aDBAccess.GetUserMaxID() == 0)
{
lStatus = lStatus + "未登录";
sbInfo->Panels->Items[0]->Text = lStatus;
}
else
{
int lEmpID = SystemLoginFrm->edtEmpID->Text.Trim().ToInt();
aDBAccess.GetUserInfo(lEmpID,CurUserInfo);
lStatus = lStatus + CurUserInfo.BaseUserInfo.EmpName;
sbInfo->Panels->Items[0]->Text = lStatus;
}
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::aDeptManageExecute(TObject *Sender)
{
//部门管理
TDeptManageFrm* pTDeptManageFrm = new TDeptManageFrm(this);
pTDeptManageFrm->SetOperateMode(omAdd);
pTDeptManageFrm->ShowModal();
delete pTDeptManageFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::aEmpManageExecute(TObject *Sender)
{
//人员管理
TEmployeeManageFrm* pTEmployeeManageFrm = new TEmployeeManageFrm(this);
pTEmployeeManageFrm->ShowModal();
delete pTEmployeeManageFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::aEmergencyOpenExecute(TObject *Sender)
{
//应急开门
TDeviceOpenFrm* pDeviceOpenFrm = new TDeviceOpenFrm(this);
pDeviceOpenFrm->SetCaption("","应急开门");
pDeviceOpenFrm->ShowModal();
delete pDeviceOpenFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::aEntanceRoleExecute(TObject *Sender)
{
//门禁规则定义
TEnguardRoleFrm* pTEnguardRoleFrm = new TEnguardRoleFrm(this);
pTEnguardRoleFrm->ShowModal();
delete pTEnguardRoleFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::aDBLinkSetExecute(TObject *Sender)
{
//数据库链接设置
TDatabaseConnectFrm* pTDatabaseConnectFrm = new TDatabaseConnectFrm(this);
pTDatabaseConnectFrm->ShowModal();
delete pTDatabaseConnectFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::aDeviceManageExecute(TObject *Sender)
{
//设备链接管理
TDeviceManageFrm* pTDeviceManageFrm = new TDeviceManageFrm(this);
pTDeviceManageFrm->ShowModal();
if (pTDeviceManageFrm->IsDeviceChanged())//退出设备管理窗口时,如果设备有变化重新启动引擎
{
aRefresh->Execute();
}
delete pTDeviceManageFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::aAddinDeviceExecute(TObject *Sender)
{
//指纹采集仪链接
HWND handle;
ShellExecute(handle, "open", "FingerPluginPro", NULL, NULL, SW_SHOWNORMAL);
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::SpeedButton5Click(TObject *Sender)
{
TBaseObjectManageFrm* pTBaseObjectManageFrm = new TBaseObjectManageFrm(this);
pTBaseObjectManageFrm->ShowModal();
delete pTBaseObjectManageFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::N4Click(TObject *Sender)
{
//显示在下面
SetWarningPanelSytle(1);
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::N3Click(TObject *Sender)
{
//显示在右侧
SetWarningPanelSytle(0);
}
//---------------------------------------------------------------------------
void TEnguardMainFrm::SetWarningPanelSytle(int iStyle)
{
if(iStyle == 0) //显示在右侧
{
pcNormalEvent->Align = alClient;
pcWarnEvent->Align = alRight;
slEvent->Align = alRight;
lvWaringEvent->Align = alClient;
pcWarnEvent->Height = pcWarnEvent->Height - 10;
this->Refresh();
}
else if (iStyle == 1) //显示在下面
{
pcNormalEvent->Align = alClient;
pcWarnEvent->Align = alBottom;
pcWarnEvent->Height = pcWarnEvent->Height + 10;
lvWaringEvent->Align = alClient;
slEvent->Align = alBottom;
this->Refresh();
}
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::bbtnDeptManageClick(TObject *Sender)
{
TDeptManageFrm* pDeptManageFrm = new TDeptManageFrm(this);
pDeptManageFrm->ShowModal();
delete pDeptManageFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::bbtnClick(TObject *Sender)
{
TEmployeeManageFrm* pEmployeeManageFrm = new TEmployeeManageFrm(this);
pEmployeeManageFrm->ShowModal();
delete pEmployeeManageFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::aOperateLogExecute(TObject *Sender)
{
TBaseLogFrm* pTOperaterLogFrm = new TOperaterLogFrm(this);
pTOperaterLogFrm->SetCaption("操作日志管理");
pTOperaterLogFrm->ShowModal();
delete pTOperaterLogFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::aEnguardEventExecute(TObject *Sender)
{
TBaseLogFrm* pTEnguardEventLogFrm = new TEnguardEventLogFrm(this);
pTEnguardEventLogFrm->SetCaption("门禁事件日志管理");
pTEnguardEventLogFrm->ShowModal();
delete pTEnguardEventLogFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEnguardMainFrm::trEventLogTimer(TObject *Sender)
{
LogInfoBase_T aLogInfo;
int lRV = pEventEngine->PopEventLog(aLogInfo);
if (lRV == OK)
{
EventType_T lEventType = (EventType_T)aLogInfo.OpType;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -