📄 employeeinputunit.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 + -