employee.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 529 行 · 第 1/2 页
CPP
529 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Employee.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
TfrmEmployee *frmEmployee;
__fastcall TfrmEmployee::TfrmEmployee(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
AutoCtl=seEmployeeCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
seEmployeeCode->Text ="";
seEmployeeName->Text ="";
scEmployeeSex->ItemIndex =0;
seEmployeeIDCard->Text ="";
deEmployeeBorthDay->Text ="";
seEmployeePhot->Text ="";
scEmployeeEdu->ItemIndex =0;
seEmployeeRpr->Text ="";
seEmployeeAddr->Text ="";
seEmployeeZip->Text ="";
seEmployeeTel->Text ="";
scEmployeeState->ItemIndex=0;
deEmployeeCdate->Text =g_sdCurDate;
scEmployeeRank->ItemIndex =-1;
seEmployeeDept->Text ="";
scEmployeeWct->ItemIndex =0;
seEmployeeShop->ItemIndex =-1;
seEmployeeTeam->ItemIndex =-1;
scEmployeeTow->ItemIndex =-1;
scEmployeeSkill->ItemIndex=-1;
deEmployeeLdate->Text ="";
seEmployeeLr->ItemIndex =-1;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::GetDataFromComObject()
{
seEmployeeCode->Text =GetFieldValue("EmployeeCode");
seEmployeeName->Text =GetFieldValue("EmployeeName");
seEmployeeIDCard->Text =GetFieldValue("EmployeeIDCard");
deEmployeeBorthDay->Text =GetFieldValue("EmployeeBorthday");
scEmployeeEdu->LocateKey(GetFieldValue("EmployeeEdu"));
scEmployeeSex->LocateKey(GetFieldValue("EmployeeSex"));
seEmployeePhot->Text =GetFieldValue("EmployeePhoto");
seEmployeeZip->Text =GetFieldValue("EmployeeZip");
seEmployeeTel->Text =GetFieldValue("EmployeeTel");
seEmployeeRpr->Text =GetFieldValue("EmployeeRpr");
seEmployeeAddr->Text =GetFieldValue("EmployeeAddr");
//modify 2003-02-18 wy
try
{
scEmployeeState->ItemIndex=StrToInt(GetFieldValue("EmployeeState"));
}
catch(...)
{
scEmployeeState->ItemIndex = 0;
}
deEmployeeCdate->Text =GetFieldValue("EmployeeCdate");
seEmployeeDept->LocateKey(GetFieldValue("EmployeeDept"));
seEmployeeShop->LocateKey(GetFieldValue("EmployeeShop"));
seEmployeeTeam->LocateKey(GetFieldValue("EmployeeTeam"));
scEmployeeRank->LocateKey(GetFieldValue("EmployeeRank"));
scEmployeeTow->LocateKey(GetFieldValue("EmployeeTow"));
scEmployeeSkill->LocateKey(GetFieldValue("EmployeeSkill"));
scEmployeeWct->LocateKey(GetFieldValue("EmployeeWct"));
deEmployeeLdate->Text =GetFieldValue("EmployeeLdate");
seEmployeeLr->LocateKey(GetFieldValue("EmployeeLr"));
TreeViewLocation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::SendDataToComObject()
{
SetFieldValue("EmployeeCode",seEmployeeCode->Text);
SetFieldValue("EmployeeName",seEmployeeName->Text);
//如果是增加状态
if(CurrentState == caAddDetail)
{
AnsiString tempS;
tempS = tvEmployee->Selected->Text;
tempS = tempS.SubString(2,tempS.AnsiPos(")")-2);
SetFieldValue("EmployeeDept",WideString(tempS));
}
SetFieldValue("EmployeeIDCard",seEmployeeIDCard->Text);
SetFieldValue("EmployeeBorthday",deEmployeeBorthDay->Text);
SetFieldValue("EmployeeEdu",scEmployeeEdu->ItemData[cbItem2]);
SetFieldValue("EmployeeSex",scEmployeeSex->ItemData[cbItem2]);
SetFieldValue("EmployeePhoto",seEmployeePhot->Text);
SetFieldValue("EmployeeZip",seEmployeeZip->Text);
SetFieldValue("EmployeeTel",seEmployeeTel->Text);
SetFieldValue("EmployeeRpr",seEmployeeRpr->Text);
SetFieldValue("EmployeeAddr",seEmployeeAddr->Text);
SetFieldValue("EmployeeRank",scEmployeeRank->ItemData[cbItem2]);
SetFieldValue("EmployeeState",scEmployeeState->ItemIndex);
SetFieldValue("EmployeeCdate",deEmployeeCdate->Text);
SetFieldValue("EmployeeDept",seEmployeeDept->ItemData[cbItem2]);
SetFieldValue("EmployeeShop",seEmployeeShop->ItemData[cbItem2]);
SetFieldValue("EmployeeTeam",seEmployeeTeam->ItemData[cbItem2]);
SetFieldValue("EmployeeTow",scEmployeeTow->ItemData[cbItem2] );
SetFieldValue("EmployeeSkill",scEmployeeSkill->ItemData[cbItem2]);
SetFieldValue("EmployeeWct",scEmployeeWct->ItemData[cbItem2]);
SetFieldValue("EmployeeLdate",deEmployeeLdate->Text);
SetFieldValue("EmployeeLr",seEmployeeLr->ItemData[cbItem2]);
SetFieldValue("EmployeeUser",g_sdUserCode);
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::WaitUserInput()
{
pcEmployee->ActivePage=tsJBZL;
if(seEmployeeCode->Enabled)
seEmployeeCode->SetFocus();
}
//---------------------------------------------------------------------------
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("EmployeeCode")
+ ")" + GetFieldValue("EmployeeName");
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("EmployeeCode") + ")" + GetFieldValue("EmployeeName");
}
}
// 删除
else if(mAction == 2)
{
if(tvEmployee->Selected->StateIndex == 0)
{
ShowMessage("当前选择的是分类节点,不能进行删除操作");
return;
}
tvEmployee->Items->Delete(tvEmployee->Selected);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::FillTreeWithPtype()
{
TTreeNode *TempNode[18];
int mLevel=1;
TComResultSet *RsDept=new TComResultSet(Handle,g_ClientHandle);
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)
TempNode[0]->Expand(true);
}
catch(...)
{
delete RsDept;
throw Exception("在插入部门资料时出错!");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::FillGridWithData()
{
FillTreeWithPtype();
TTreeNode *TempNode;
comServer->MoveFirst();
try{
while(comServer->Eof == 0)
{
AnsiString s,m;
s = GetFieldValue("EmployeeDept");
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("EmployeeCode") + ")" +GetFieldValue("EmployeeName"));
TempNode->StateIndex = 1;
TempNode->Text="(" + GetFieldValue("EmployeeCode") + ")" + GetFieldValue("EmployeeName");
break;
}
}
comServer->MoveNext();
}
}
catch(...)
{
throw Exception("在插入员工资料时出错!");
}
if(comServer->RecordCount>0)
{
comServer->MoveFirst();
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmEmployee::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true,FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,true,true,false,EmployeePanel,EmployeePanel->Name);
ClientGroup->AddComponent(2,true,true,true,seEmployeeDept,seEmployeeDept->Name);
ClientGroup->AddComponent(2,false,true,false,seEmployeeCode,seEmployeeCode->Name);
ClientGroup->AddComponent(2,true,true,true,deEmployeeLdate,deEmployeeLdate->Name);
ClientGroup->AddComponent(2,true,true,true,scEmployeeState,scEmployeeState->Name);
ClientGroup->AddComponent(2,true,true,true,seEmployeeLr,seEmployeeLr->Name);
scEmployeeEdu->ClearAll();
scEmployeeEdu->AddItems("小学","1");
scEmployeeEdu->AddItems("初中","2");
scEmployeeEdu->AddItems("中专","3");
scEmployeeEdu->AddItems("高中","4");
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?