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

📄 employeeinputunit.cpp

📁 指纹门禁机管理系统
💻 CPP
字号:

#pragma hdrstop

#include "EmployeeInputUnit.h"
#include "DeptManageUnit.h"
#include "EnguardRoleUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "BaseInputUnit"
#pragma resource "*.dfm"
TEmployeeInfoFrm *EmployeeInfoFrm;
//---------------------------------------------------------------------------
__fastcall TEmployeeInfoFrm::TEmployeeInfoFrm(TComponent* Owner)
        : TBaseDataInputFrm(Owner)
{
}
//---------------------------------------------------------------------------

void TEmployeeInfoFrm::SetOperateMode(OperateMode_T iMode)
{
    CurOperateMode = iMode;
}
//---------------------------------------------------------------------------
void TEmployeeInfoFrm::SetDeptInfo(DeptInfo_T iDeptInfo)
{
    aDeptInfo = iDeptInfo;
}
//---------------------------------------------------------------------------
void TEmployeeInfoFrm::SetNewInfo()
{
   edtUserID->Text = pDBAccess->GetUserMaxID()+1;
   edtUserName->Text = "";
   edtDept->Text = AnsiString(aDeptInfo.DeptName).Trim();
   edtPassword->Text = "";
   edtUserDesc->Text ="";
   rgManageType->ItemIndex = 0;

   cbWeekend->Checked = true;
   cbHoliday->Checked = true;
   edtAddedFingerCount->Text = "0";
   rgIsUsePassword->ItemIndex = 1;
}
//---------------------------------------------------------------------------

void TEmployeeInfoFrm::InitShow()
{
   RV = BadData_E;
   switch(CurOperateMode)
   {
    case omAdd:
    {
       SetNewInfo();
    }break;
    case omEdit:
    {
      SetEmpInfoToUI();

    }break;
    case omView:
    {
      SetEmpInfoToUI();
      SetUIEnabled(false);
    }break;
   }
}
//---------------------------------------------------------------------------
void TEmployeeInfoFrm::SetUIEnabled(bool iEnabled)
{
   edtUserID->Enabled = iEnabled;
   edtUserName->Enabled = iEnabled;
   bbtnDept->Enabled = iEnabled;
   bbtnRole->Enabled = iEnabled;
   rgManageType->Enabled = iEnabled;
   for(int i=0;i<5;i++)
      RoleCheckBoxList[i]->Enabled = iEnabled;
   rgVerifyType->Enabled = iEnabled;
   rgIsUsePassword->Enabled = iEnabled;
   edtUserDesc->Enabled = iEnabled;
   bbtnOK->Enabled = iEnabled;
}
//---------------------------------------------------------------------------

bool TEmployeeInfoFrm::EmpInfoCheck()
{
   if(edtUserID->Text.Trim().IsEmpty())
   {
      Application->MessageBoxA("请输入员工编号!","提示信息",MB_OK + MB_ICONWARNING);
      edtUserID->SetFocus();
      return false;
   }

   if(edtUserName->Text.Trim().IsEmpty())
   {
      Application->MessageBoxA("请输入员工姓名!","提示信息",MB_OK + MB_ICONWARNING);
      edtUserName->SetFocus();
      return false;
   }

   if(edtDept->Text.Trim().IsEmpty())
   {
      Application->MessageBoxA("请选择所属部门!","提示信息",MB_OK + MB_ICONWARNING);
      edtDept->SetFocus();
      return false;
   }
   return true;
}
//---------------------------------------------------------------------------
bool TEmployeeInfoFrm::GetEmpInfoFromUI()
{
   //从界面得到员工信息
   if (!EmpInfoCheck())
     return false;
   aUserInfo.BaseUserInfo.UserID = edtUserID->Text.ToInt();
   aUserInfo.BaseUserInfo.DeptID = aDeptInfo.DeptID;
   memset(aUserInfo.BaseUserInfo.EmpName,0,sizeof(aUserInfo.BaseUserInfo.EmpName));
   strcpy(aUserInfo.BaseUserInfo.EmpName,edtUserName->Text.c_str());

   aUserInfo.BaseUserInfo.ManageClass = GetManageTypeValue();

   aUserInfo.BaseUserInfo.AttendPlan = GetRoleValue();

   aUserInfo.BaseUserInfo.VerifyMode = GetVerifyModeValue();

   VerifyMode_T lVerifyMode = (rgVerifyType->ItemIndex==0)?vmFinger:vmPassword;

   aUserInfo.BaseUserInfo.VerifyMode = lVerifyMode;
   if (rgIsUsePassword->ItemIndex == 0)
   {
      aUserInfo.BaseUserInfo.IsUsePwd = upUse;
      strcpy(aUserInfo.BaseUserInfo.EmpPwd,edtPassword->Text.c_str());
   }
   if(edtPassword->Text == "")
         strcpy(aUserInfo.BaseUserInfo.EmpPwd,"-1");

   if (CurOperateMode == omAdd)  //新增用户时 默认为 wsInService
      aUserInfo.BaseUserInfo.Flag = wsInService;

   strcpy(aUserInfo.BaseUserInfo.EmpDesc,edtUserDesc->Text.c_str());
   return true;

}
//---------------------------------------------------------------------------
bool TEmployeeInfoFrm::SetEmpInfoToUI()
{
   edtUserID->Text = aUserInfo.BaseUserInfo.UserID;
   edtUserName->Text = aUserInfo.BaseUserInfo.EmpName;
   edtDept->Text = AnsiString(pDBAccess->GetDeptName(aUserInfo.BaseUserInfo.DeptID)).Trim();
   edtPassword->Text = aUserInfo.BaseUserInfo.EmpPwd;
   edtUserDesc->Text = aUserInfo.BaseUserInfo.EmpDesc;

   rgManageType->ItemIndex = (aUserInfo.BaseUserInfo.ManageClass == utUser)?0:1;

   edtAddedFingerCount->Text = (int)aUserInfo.BaseUserInfo.FingerCount;

   rgIsUsePassword->ItemIndex = aUserInfo.BaseUserInfo.IsUsePwd;

   VerifyMode_T lVerifyMode = (VerifyMode_T)aUserInfo.BaseUserInfo.VerifyMode;
   switch(lVerifyMode)
   {
    case  vmFinger:rgVerifyType->ItemIndex = 0;break;
    case  vmPassword:rgVerifyType->ItemIndex = 1;break;
    default: vmPassword:rgVerifyType->ItemIndex = 2;
   }
   char lRoleVal = aUserInfo.BaseUserInfo.AttendPlan;
   if ((lRoleVal & rtNoLimit)== rtNoLimit)
     cbNoLimit->Checked = true;
   if ((lRoleVal & rtPeriod1)== rtPeriod1)
     cbPeriod1->Checked = true;
   if ((lRoleVal & rtPeriod2)== rtPeriod2)
     cbPeriod2->Checked = true;
   if ((lRoleVal & rtWeekend)== rtWeekend)
     cbWeekend->Checked = true;
   if ((lRoleVal & rtHoliday)== rtHoliday)
     cbHoliday->Checked = true;
   return true;
}
//---------------------------------------------------------------------------
char TEmployeeInfoFrm::GetRoleValue()
{
   //得到门禁规则值
   char lRoleVal;
   char lReturnVal = (int)0;
   for(int i=0;i<5;i++)
   {
     if (RoleCheckBoxList[i]->Checked)
     {
       lRoleVal = RoleCheckBoxList[i]->Tag;
       lReturnVal = lReturnVal |lRoleVal;
     }
   }
   return lReturnVal;
}
//---------------------------------------------------------------------------
char TEmployeeInfoFrm::GetManageTypeValue()
{
  UserType_T aUserType;
  if (rgManageType->ItemIndex == 0)
  {
    aUserType = utUser;
  }
  else
  {
    aUserType = utManage;
  }
  return (char)aUserType;
}
//---------------------------------------------------------------------------
char TEmployeeInfoFrm::GetVerifyModeValue()
{
   VerifyMode_T aVerifyMode;
   if (rgVerifyType->ItemIndex == 0)
   {
     aVerifyMode = vmFinger;
   }
   else if (rgVerifyType->ItemIndex == 1)
   {
     aVerifyMode = vmPassword;
   }
   return (char)aVerifyMode;
}
//---------------------------------------------------------------------------

void __fastcall TEmployeeInfoFrm::bbtnDeptClick(TObject *Sender)
{
    TDeptManageFrm* pDeptManageFrm = new TDeptManageFrm(this);
    pDeptManageFrm->SetOperateMode(omSelect);
    pDeptManageFrm->ShowModal();
    bool lOK = pDeptManageFrm->GetDeptInfo(aDeptInfo);
    if(lOK)
    {
        edtDept->Text = aDeptInfo.DeptName;
        aUserInfo.BaseUserInfo.DeptID = aDeptInfo.DeptID;
    }
    delete pDeptManageFrm;
}
//---------------------------------------------------------------------------
void __fastcall TEmployeeInfoFrm::FormShow(TObject *Sender)
{
   InitShow();
}
//---------------------------------------------------------------------------

void __fastcall TEmployeeInfoFrm::bbtnOKClick(TObject *Sender)
{

   switch(CurOperateMode)
   {
    case omAdd:  //新增模式
    {
       bool lOK = GetEmpInfoFromUI();
       if (lOK)
       {
          if(pDBAccess->IsUserIDExist(aUserInfo.BaseUserInfo.UserID))
          {
             Application->MessageBoxA("此员工编号已经存在!","提示信息",MB_OK + MB_ICONWARNING);
             edtUserID->SetFocus();
             return;
          }
          RV = OK;
       }
    }break;
    case omEdit:  //修改模式
    {
      if (!GetEmpInfoFromUI())
        return;
      RV = OK;
    }break;
   }
   Close();
}
//---------------------------------------------------------------------------
bool TEmployeeInfoFrm::SetUserInfo(UserInfoEx_T iUserInfo)
{
   aUserInfo = iUserInfo;
   aDeptInfo.DeptID = iUserInfo.BaseUserInfo.DeptID;
   strcpy(aDeptInfo.DeptName,iUserInfo.DeptName);
   return true;
}
//---------------------------------------------------------------------------
bool TEmployeeInfoFrm::GetUserInfo(UserInfoEx_T& oUserInfo)
{
  oUserInfo = aUserInfo;
  return RV == OK;
}
//---------------------------------------------------------------------------

void __fastcall TEmployeeInfoFrm::FormCreate(TObject *Sender)
{
  cbNoLimit->Tag = rtNoLimit;
  cbPeriod1->Tag = rtPeriod1;
  cbPeriod2->Tag = rtPeriod2;
  cbWeekend->Tag = rtWeekend;
  cbHoliday->Tag = rtHoliday;

  RoleCheckBoxList[0] = cbNoLimit;
  RoleCheckBoxList[1] = cbPeriod1;
  RoleCheckBoxList[2] = cbPeriod2;
  RoleCheckBoxList[3] = cbWeekend;
  RoleCheckBoxList[4] = cbHoliday;

  for(int i=0;i<5;i++)
  {
    RoleCheckBoxList[i]->OnClick = OnCheckBoxClick;
  }
  pDBAccess = new TDBAccess;
  CurOperateMode = omView;

}
//---------------------------------------------------------------------------

void __fastcall TEmployeeInfoFrm::OnCheckBoxClick(TObject *Sender)
{
   TCheckBox* pCheckBox = (TCheckBox*)Sender;
   int lIndex = pCheckBox->Tag;
   if (pCheckBox->Checked)
   {
      if (lIndex != rtNoLimit)
      {
         RoleCheckBoxList[0]->Checked = false;
      }
      switch(lIndex)
      {
       case rtNoLimit:
       {
          for(int i=1;i<5;i++)
          {
            RoleCheckBoxList[i]->Checked = false;
          }
       }break;
       case rtPeriod1:
       {
           RoleCheckBoxList[2]->Checked = false;
       }break;
       case rtPeriod2:
       {
           RoleCheckBoxList[1]->Checked = false;
       }break;
      }
   }
}
//---------------------------------------------------------------------------

void __fastcall TEmployeeInfoFrm::rgIsUsePasswordClick(TObject *Sender)
{
   edtPassword->Enabled = rgIsUsePassword->ItemIndex == 0;
   lblPassword->Enabled = rgIsUsePassword->ItemIndex == 0;
   if (!edtPassword->Enabled)
     edtPassword->Text = "";
}
//---------------------------------------------------------------------------

void __fastcall TEmployeeInfoFrm::bbtnRoleClick(TObject *Sender)
{
   TEnguardRoleFrm* pTEnguardRoleFrm = new TEnguardRoleFrm(this);
   pTEnguardRoleFrm->ShowModal();
   delete pTEnguardRoleFrm; 
}
//---------------------------------------------------------------------------

void __fastcall TEmployeeInfoFrm::FormDestroy(TObject *Sender)
{
   delete pDBAccess; 
}
//---------------------------------------------------------------------------

void __fastcall TEmployeeInfoFrm::bbtnCancelClick(TObject *Sender)
{
   RV = BadData_E;
   Close(); 
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -