📄 compareempunit.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "CompareEmpUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "BaseInputUnit"
#pragma resource "*.dfm"
TEmpInfoCompareFrm *EmpInfoCompareFrm;
//---------------------------------------------------------------------------
__fastcall TEmpInfoCompareFrm::TEmpInfoCompareFrm(TComponent* Owner)
: TBaseDataInputFrm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TEmpInfoCompareFrm::FormCreate(TObject *Sender)
{
pDBSelectList = new TStringList();
pDevList = new TStringList();
}
//---------------------------------------------------------------------------
void __fastcall TEmpInfoCompareFrm::FormDestroy(TObject *Sender)
{
delete pDBSelectList;
delete pDevList;
}
//---------------------------------------------------------------------------
void TEmpInfoCompareFrm::AddDBSelectedEmpID(int iEmpID)
{
pDBSelectList->Add(iEmpID);
}
//---------------------------------------------------------------------------
void TEmpInfoCompareFrm::AddDevEmpID(int iEmpID)
{
pDevList->Add(iEmpID);
}
//---------------------------------------------------------------------------
AnsiString TEmpInfoCompareFrm::CheckUserInfo(UserInfo_T iDBUserInfo,UserInfo_T iDevUserInfo)
{
AnsiString lText = "员工编号:" + AnsiString(iDBUserInfo.UserID);
if(AnsiString(iDBUserInfo.EmpName).Trim() != AnsiString(iDevUserInfo.EmpName).Trim())
lText = lText + " \"员工姓名\"不一致";
if(iDBUserInfo.DeptID != iDevUserInfo.DeptID)
lText = lText + " \"所属部门\"不一致";
if(iDBUserInfo.ManageClass != iDevUserInfo.ManageClass)
lText = lText + " \"管理级别\"不一致";
if(iDBUserInfo.AttendPlan != iDevUserInfo.AttendPlan)
lText = lText + " \"门禁规则类型\"不一致";
if(iDBUserInfo.VerifyMode != iDevUserInfo.VerifyMode)
lText = lText + " \"验证方式\"不一致";
if(iDBUserInfo.FingerCount != iDevUserInfo.FingerCount)
lText = lText + " \"已添加指纹数\"不一致";
if(iDBUserInfo.IsUsePwd != iDevUserInfo.IsUsePwd)
lText = lText + " \"启用员工密码\"不一致";
if(iDBUserInfo.Flag != iDevUserInfo.Flag)
lText = lText + " \"员工状态\"不一致";
if(lText.Length() < 19)
return NULL;
return lText;
}
//---------------------------------------------------------------------------
void __fastcall TEmpInfoCompareFrm::bbtnOKClick(TObject *Sender)
{
int lSelectedEmpID;
TDBAccess aDBAccess;
int lRV;
AnsiString lMsg;
mmCompareList->Clear();
AnsiString lText;
lText = "记录条数:数据库";
lText = lText + AnsiString(pDBSelectList->Count) + "条,设备" + AnsiString(pDevList->Count) + "条";
mmCompareList->Lines->Add(lText);
mmCompareList->Lines->Add("");
mmCompareList->Lines->Add("=====================比较开始=====================");
mmCompareList->Lines->Add("");
TStringList *lNoDevicList = new TStringList();
for(int i=0;i<pDBSelectList->Count;i++)
{
UserInfoEx_T lDBUserInfo;
UserInfo_T lDevUserInfo;
lSelectedEmpID = pDBSelectList->Strings[i].ToInt();
lRV = aDBAccess.GetUserInfo(lSelectedEmpID,lDBUserInfo);
if (lRV == OK)
{
lRV = aDBAccess.GetUserInfo_T(lSelectedEmpID,lDevUserInfo);
if (lRV == DBIsEmpty_E)
{
//设备中没有该员工
lText = "数据库中存在,设备中不存在编号为: ";
lText = lText + AnsiString(lSelectedEmpID) + " 的员工";
mmCompareList->Lines->Add(lText);
}
else
{
lMsg = CheckUserInfo(lDBUserInfo.BaseUserInfo,lDevUserInfo);
if (lMsg != "0")
{
//数据库与设备员工有差异
lNoDevicList->Add(lMsg);
}
}
}
}
mmCompareList->Lines->Add("");
// 显示设备有 数据库没有的员工
for(int i=0;i<pDevList->Count;i++)
{
if (pDBSelectList->IndexOf(pDevList->Strings[i]) < 0)
{
// 显示设备有 数据库没有的员工
lText = "设备中存在,数据库中不存在编号为: ";
lText = lText + AnsiString(pDevList->Strings[i]) + " 的员工";
mmCompareList->Lines->Add(lText);
}
}
mmCompareList->Lines->Add("");
for(int i=0;i<lNoDevicList->Count;i++)
mmCompareList->Lines->Add(lNoDevicList->Strings[i]);
delete lNoDevicList;
mmCompareList->Lines->Add("");
mmCompareList->Lines->Add("=====================比较结束=====================");
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -