employeeedit.cpp
来自「是我编写的一个考勤机管理系统,用于计算某员工某段时间以来的迟到与早退等情况.」· C++ 代码 · 共 292 行
CPP
292 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "EmployeeEdit.h"
#include "DM.h"
#include "Public.h"
#include "Employee.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmEmployeeEdit *frmEmployeeEdit;
//---------------------------------------------------------------------------
__fastcall TfrmEmployeeEdit::TfrmEmployeeEdit(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployeeEdit::LoadData(void)
{
OpenSQL(QurFree,"select * from DefClass");
if (QurFree->RecordCount>0)
{
QurFree->First();
CmbClass->Items->Clear();
while (!QurFree->Eof)
{
CDC = new cDefClass;
CDC->iID = QurFree->FieldByName("DefClassID")->AsInteger ;
CDC->sName = QurFree->FieldByName("DefClassName")->AsString ;
CmbClass->Items->AddObject(CDC->sName,CDC);
QurFree->Next();
}
}
OpenSQL(QurFree,"select * from DefVac");
if (QurFree->RecordCount>0)
{
QurFree->First();
CmbVac->Items->Clear();
while (!QurFree->Eof)
{
CDV = new cDefVac;
CDV->iID = QurFree->FieldByName("DefVacID")->AsInteger ;
CDV->sName = QurFree->FieldByName("DefVacName")->AsString ;
CmbVac->Items->AddObject(CDV->sName,CDV);;
QurFree->Next();
}
}
}
void __fastcall TfrmEmployeeEdit::BtnState(int State)
{
switch (State)
{
case 1 : //新增
EdtCode->Enabled=true;
EdtName->Enabled=true;
EdtCard->Enabled=true;
CmbClass->Enabled=true;
CmbVac->Enabled=true;
break;
case 2 : //查看
EdtCode->Enabled=false;
EdtName->Enabled=false;
EdtCard->Enabled=false;
CmbClass->Enabled=false;
CmbVac->Enabled=false;
break;
case 3 : //修改
EdtCode->Enabled=true;
EdtName->Enabled=true;
EdtCard->Enabled=true;
CmbClass->Enabled=true;
CmbVac->Enabled=true;
break;
}
}
void __fastcall TfrmEmployeeEdit::AddBill(void)
{
EdtCode->Clear();
EdtName->Clear();
EdtCard->Clear();
CmbClass->Clear();
CmbVac->Clear();
LoadData();
BtnState(1);
mEdit=false;
mChanged=false;
mEmployeeID=0;
EdtName->SetFocus() ;
}
void __fastcall TfrmEmployeeEdit::ViewBill(int EmployeeID)
{
LoadData();
OpenSQL(QurFree,"select a.Code,a.Name,a.Card,b.DefClassName,c.DefVacName from (Employee a "
"left outer join DefClass b on a.DefClassID=b.DefClassID) "
"Left outer join DefVac c on a.DefVacID=c.DefVacID where EmployeeID=" + IntToStr(EmployeeID));
if (QurFree->RecordCount==0)
{
Message("该单据已不存在!");
return;
}
EdtCode->Text= QurFree->FieldByName("Code")->AsString;
EdtName->Text= QurFree->FieldByName("Name")->AsString;
EdtCard->Text= QurFree->FieldByName("Card")->AsString;
CmbClass->ItemIndex = CmbClass->Items->IndexOf(QurFree->FieldByName("DefClassName")->AsString);
CmbVac->ItemIndex = CmbVac->Items->IndexOf(QurFree->FieldByName("DefVacName")->AsString);
BtnState(2);
mEdit=true;
mChanged=false;
mEmployeeID= EmployeeID;
}
bool __fastcall TfrmEmployeeEdit::SaveBill(void)
{
if (Trim(EdtCode->Text)=="")
{
Message("请输入员工编号!");
return false;
}
if (Trim(EdtName->Text)=="")
{
Message("请输入员工名称!");
return false;
}
if (Trim(EdtCard->Text)=="")
{
Message("请输入员工卡号!");
return false;
}
if (Trim(CmbClass->Text)=="")
{
Message("请选择默认排班!");
return false;
}
if (Trim(CmbVac->Text)=="")
{
Message("请选择默认休假!");
return false;
}
if (mChanged==false) return false;
try
{
if (!mEdit)
{
OpenSQL(QurFree,"select * from Employee where Code='" + Trim(EdtCode->Text) + "' or Card='" + Trim(EdtCard->Text) + "'");
if (QurFree->RecordCount>0)
{
Message ("该员工编号或员工卡号已存在!");
return false;
}
QurFree->Append();
QurFree->FieldByName("Name")->AsString=Trim(EdtName->Text);
QurFree->FieldByName("Code")->AsString=Trim(EdtCode->Text);
QurFree->FieldByName("Card")->AsString=Trim(EdtCard->Text);
QurFree->FieldByName("DefClassID")->AsInteger=
((cDefClass*)(CmbClass->Items->Objects[CmbClass->ItemIndex]))->iID;
QurFree->FieldByName("DefVacID")->AsInteger=
((cDefVac*)(CmbVac->Items->Objects[CmbVac->ItemIndex]))->iID;
QurFree->Post();
/*frmDM->Con->Execute("insert into Employee(Code,Name,Card,DefClassID,DefVacID) values("
"'" + EdtCode->Text + "',"
"'" + EdtName->Text + "',"
"'" + EdtCard->Text + "',"
+ IntToStr(((cDefClass*)(CmbClass->Items->Objects[CmbClass->ItemIndex]))->iID) + ","
+ IntToStr(((cDefVac*)(CmbVac->Items->Objects[CmbVac->ItemIndex]))->iID) + ")" ); */
}
else
{
OpenSQL(QurFree,"select * from Employee where EmployeeID=" + IntToStr(mEmployeeID));
if (QurFree->RecordCount == 0)
{
Message("该员工记录已不存在!");
return false;
}
QurFree->Edit();
QurFree->FieldByName("Code")->AsString=EdtCode->Text;
QurFree->FieldByName("Name")->AsString=EdtName->Text;
QurFree->FieldByName("Card")->AsString=EdtCard->Text;
QurFree->FieldByName("DefClassID")->AsInteger=
((cDefClass*)(CmbClass->Items->Objects[CmbClass->ItemIndex]))->iID;
QurFree->FieldByName("DefVacID")->AsInteger=
((cDefVac*)(CmbVac->Items->Objects[CmbVac->ItemIndex]))->iID;
QurFree->Post();
//QurFree->UpdateBatch();
}
BtnState(2);
mChanged=false;
if (frmEmployee!=NULL)
frmEmployee->RefreshData() ;
//ViewBill(mEmployeeID);
return true;
}
catch(Exception &Err)
{
if ( AnsiPos("创建重复的值",Err.Message) != 0 )
Message ("输入的员工编号或员工卡号有重复!");
else
Message (Err.Message);
return false;
}
}
void __fastcall TfrmEmployeeEdit::FormClose(TObject *Sender,
TCloseAction &Action)
{
frmEmployeeEdit=NULL;
Action=caFree;
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployeeEdit::BtnPriorClick(TObject *Sender)
{
frmDM->QurEmployee->Prior() ;
ViewBill(frmDM->QurEmployee->FieldByName("EmployeeID")->AsInteger);
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployeeEdit::BtnNextClick(TObject *Sender)
{
frmDM->QurEmployee->Next();
ViewBill(frmDM->QurEmployee->FieldByName("EmployeeID")->AsInteger);
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployeeEdit::BtnAddClick(TObject *Sender)
{
AddBill();
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployeeEdit::BtnEditClick(TObject *Sender)
{
BtnState(3);
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployeeEdit::BtnSaveClick(TObject *Sender)
{
SaveBill() ;
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployeeEdit::BtnExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployeeEdit::EdtNameChange(TObject *Sender)
{
mChanged=true;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?