📄 employee.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Employee.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "DateEdit"
#pragma link "DateEdit"
#pragma resource "*.dfm"
TfrmEmployee *frmEmployee;
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmEmployee::GetFieldValue(int FieldIndex)
{
WideString S;
S = ReadFieldValue(comServer,FieldIndex);
return(S);
}
//---------------------------------------------------------------------------
__fastcall TfrmEmployee::TfrmEmployee(TComponent* Owner)
: TRecBaseForm(Owner,euSdEmployee,"")
{
AutoCtl=seEmployeeCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::ClearControl(bool BringToNext)
{
if (!BringToNext)
{
deEmployeeSysDate->Caption="";
seEmployeeCode->Text ="Emp00";
seEmployeeName->Text ="";
seEmployeeIDCard->Text ="";
deEmployeeBorthDay->Text ="";
scEmployeeEdu->ItemIndex =3;
scEmployeeSex->ItemIndex =0;
seEmployeeAddr->Text ="";
seEmployeeZip->Text ="";
seEmployeeTel->Text ="";
deEmployeeCdate->Text =g_sdCurDate;
seEmployeeRpr->Text ="";
scEmployeeRank->ItemIndex =-1;
scEmployeeDept->Text ="";
seEmployeeUser->LocateKey(g_sdUserCode);
scEmployeeWct->ItemIndex =0;
scEmployeeShop->ItemIndex =-1;
scEmployeeTeam->ItemIndex =-1;
scEmployeeTow->ItemIndex =-1;
scEmployeeSkill->ItemIndex=-1;
scEmployeeLr->ItemIndex=-1;
deEmployeeLdate->Text ="";
lbEmployeePhoto->Caption ="";
scEmployeeState->ItemIndex=0;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::GetDataFromComObject()
{
WideString S;
seEmployeeCode->Text =GetFieldValue(fiEmployeeCode);
seEmployeeName->Text =GetFieldValue(fiEmployeeName);
seEmployeeIDCard->Text =GetFieldValue(fiEmployeeIDCard);
deEmployeeBorthDay->Text =GetFieldValue(fiEmployeeBorthday);
scEmployeeEdu->LocateKey(GetFieldValue(fiEmployeeEdu));
scEmployeeSex->LocateKey(GetFieldValue(fiEmployeeSex));
seEmployeeAddr->Text =GetFieldValue(fiEmployeeAddr);
seEmployeeZip->Text =GetFieldValue(fiEmployeeZip);
seEmployeeTel->Text =GetFieldValue(fiEmployeeTel);
deEmployeeCdate->Text =GetFieldValue(fiEmployeeCdate);
seEmployeeRpr->Text =GetFieldValue(fiEmployeeRpr);
scEmployeeRank->LocateKey(GetFieldValue(fiEmployeeRank));
scEmployeeRank->Text=scEmployeeRank->ItemData[cbItem1];
scEmployeeDept->LocateKey(GetFieldValue(fiEmployeeDept));
seEmployeeUser->LocateKey(GetFieldValue(fiEmployeeUser));
scEmployeeWct->LocateKey(GetFieldValue(fiEmployeeWct));
scEmployeeShop->LocateKey(GetFieldValue(fiEmployeeShop));
scEmployeeShop->Text=scEmployeeShop->ItemData[cbItem1];
scEmployeeTeam->LocateKey(GetFieldValue(fiEmployeeTeam));
scEmployeeTeam->Text=scEmployeeTeam->ItemData[cbItem1];
scEmployeeTow->LocateKey(GetFieldValue(fiEmployeeTow));
scEmployeeTow->Text=scEmployeeTow->ItemData[cbItem1];
scEmployeeSkill->LocateKey(GetFieldValue(fiEmployeeSkill));
scEmployeeSkill->Text=scEmployeeSkill->ItemData[cbItem1];
deEmployeeLdate->Text =GetFieldValue(fiEmployeeLdate);
scEmployeeLr->LocateKey(GetFieldValue(fiEmployeeLr));
lbEmployeePhoto->Caption =GetFieldValue(fiEmployeePhoto);
deEmployeeSysDate->Caption=GetFieldValue(fiEmployeeSysDate);
scEmployeeState->ItemIndex=StrToInt(GetFieldValue(fiEmployeeState));
spBtnPict->Enabled=false;
TreeViewLocation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::SendDataToComObject()
{
AnsiString m;
WriteFieldValue(comServer,fiEmployeeCode, seEmployeeCode->Text );
WriteFieldValue(comServer,fiEmployeeName, seEmployeeName->Text );
// 如果是增加状态
if( CurrentState == caAddDetail)
{
m=tvEmployee->Selected->Text;
m = m.SubString(2,m.AnsiPos(")")-2);
WriteFieldValue(comServer,fiEmployeeDept,WideString(m));
}
WriteFieldValue(comServer,fiEmployeeIDCard, seEmployeeIDCard->Text );
WriteFieldValue(comServer,fiEmployeeBorthday,deEmployeeBorthDay->Text);
WriteFieldValue(comServer,fiEmployeeEdu, scEmployeeEdu->ItemData[cbItem2]);
WriteFieldValue(comServer,fiEmployeeSex, scEmployeeSex->ItemData[cbItem2]);
WriteFieldValue(comServer,fiEmployeeAddr, seEmployeeAddr->Text );
WriteFieldValue(comServer,fiEmployeeZip, seEmployeeZip->Text );
WriteFieldValue(comServer,fiEmployeeTel, seEmployeeTel->Text );
WriteFieldValue(comServer,fiEmployeeCdate, deEmployeeCdate->Text );
WriteFieldValue(comServer,fiEmployeeRpr, seEmployeeRpr->Text );
WriteFieldValue(comServer,fiEmployeeRank, scEmployeeRank->ItemData[cbItem2]);
WriteFieldValue(comServer,fiEmployeeDept, scEmployeeDept->ItemData[cbItem2]);
WriteFieldValue(comServer,fiEmployeeShop, scEmployeeShop->ItemData[cbItem2]);
WriteFieldValue(comServer,fiEmployeeTeam, scEmployeeTeam->ItemData[cbItem2]);
WriteFieldValue(comServer,fiEmployeeUser, g_sdUserCode);
WriteFieldValue(comServer,fiEmployeeWct, scEmployeeWct->ItemData[cbItem2]);
WriteFieldValue(comServer,fiEmployeeTow, scEmployeeTow->ItemData[cbItem2] );
WriteFieldValue(comServer,fiEmployeeSkill, scEmployeeSkill->ItemData[cbItem2]);
// WriteFieldValue(comServer,fiEmployeeLdate, deEmployeeLdate->Text );
WriteFieldValue(comServer,fiEmployeePhoto, lbEmployeePhoto->Caption );
WriteFieldValue(comServer,fiEmployeeState, scEmployeeState->ItemIndex );
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::WaitUserInput()
{
if(seEmployeeCode->Enabled)
seEmployeeCode->SetFocus ();
spBtnPict->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::RefreshGridData(int mAction)
{
AnsiString TempText;
TTreeNode *TempNode;
// 新增
if (mAction == 0)
{
if(tvEmployee->Selected)
{
if (tvEmployee->Selected->StateIndex == 1)
{
ShowMessage("当前选择的不是分类节点,不能进行增加操作.");
return;
}
TempText = "(" + GetFieldValue(fiEmployeeCode)
+ ")" + GetFieldValue(fiEmployeeName);
TempNode = tvEmployee->Selected;
TempNode = tvEmployee->Items->AddChild(TempNode,TempText);
TempNode->StateIndex = 1;
TempNode->Text = TempText;
}
}
// 修改
else if(mAction == 1)
{
if(tvEmployee->Selected)
{
if (tvEmployee->Selected->StateIndex == 0)
{
ShowMessage("当前选择的是分类节点,不能进行修改操作.");
return;
}
TempNode=tvEmployee->Selected;
TempNode->StateIndex = 1;
TempNode->Text = "(" + GetFieldValue(fiEmployeeCode) + ")" + GetFieldValue(fiEmployeeName);
}
}
// 删除
else if(mAction == 2)
{
if (tvEmployee->Selected->StateIndex == 0)
{
ShowMessage("当前选择的是分类节点,不能进行删除操作.");
return;
}
tvEmployee->Items->Delete(tvEmployee->Selected);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::FillTreeWithPtype()
{
TTreeNode *TempNode[7];
int mLevel=1;
TComResultSet *RsDept=NewResultSet();
try{
tvEmployee->Items->Clear();
TempNode[0]=tvEmployee->Items->Add(NULL,"所有员工");
RsDept->Open(WideString("select DeptCode,DeptName,DeptLevel from sdDept order by DeptCode"),WideString("DeptCode"));
RsDept->MoveFirst();
while( RsDept->Eof == 0 )
{
mLevel=RsDept->FieldByName("DeptLevel").ToInt();
TempNode[mLevel] = tvEmployee->Items->AddChild(TempNode[mLevel-1],"(" + RsDept->FieldByName("DeptCode") + ")" +RsDept->FieldByName("DeptName"));
TempNode[mLevel]->StateIndex = 0;
TempNode[mLevel]->Text= "(" + RsDept->FieldByName("DeptCode") + ")"+RsDept->FieldByName("DeptName");
RsDept->MoveNext();
}
RsDept->Close();
delete RsDept;
if (tvEmployee->Items->Count > 0)
{
tvEmployee->FullExpand();
}
}
catch(...)
{
delete RsDept;
throw Exception("在插入部门资料时出错!");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::FillGridWithData()
{
FillTreeWithPtype();
TTreeNode *TempNode;
comServer->MoveFirst();
try{
while (comServer->Eof == 0)
{
AnsiString s,m;
s = GetFieldValue(fiEmployeeDept);
for(int i = 1 ; i < tvEmployee->Items->Count ; i ++)
{
m = tvEmployee->Items->Item[i]->Text;
m = m.SubString(2,m.AnsiPos(")")-2);
if(m == s)
{
TempNode = tvEmployee->Items->Item[i];
TempNode= tvEmployee->Items->AddChild(TempNode,"(" + GetFieldValue(fiEmployeeCode) + ")" +GetFieldValue(fiEmployeeName));
TempNode->StateIndex = 1;
TempNode->Text="(" + GetFieldValue(fiEmployeeCode) + ")" + GetFieldValue(fiEmployeeName);
break;
}
}
comServer->MoveNext();
}
}
catch(...)
{
throw Exception("在插入员工资料时出错!");
}
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false,EmployeePanel,EmployeePanel->Name);
ClientGroup->AddComponent(2,true,true,true,scEmployeeDept,scEmployeeDept->Name);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -