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 + -
显示快捷键?