⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 employee.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------
#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 + -