⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compareempunit.cpp

📁 指纹门禁机管理系统
💻 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 + -