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

📄 tap.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Tap.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
TfrmTap *frmTap;
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmTap::GetFieldValue(int FieldIndex)
{
    WideString S;
    S  = ReadFieldValue(comServer,FieldIndex);
    return(S);
}
//---------------------------------------------------------------------------

void __fastcall TfrmTap::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
       seTapCode->Text="";
       memTapDesc->Text="";
       scTapEmployee->Text="";
       scTapMgr->Text="";
       deTapDate->Text=g_sdCurDate;
       deTapEdate->Text="";
       scTapState->ItemIndex=1;
       seTapUser->LocateKey(g_sdUserCode);
       lbTapSysDate->Caption="";
       seTapORank->Text="";
       seTapOShop->Text="";
       seTapOTeam->Text="";
       scTapNRank->Text="";
       scTapNShop->Text="";
       scTapNTeam->Text="";
     }
}
//---------------------------------------------------------------------------

void __fastcall TfrmTap::GetDataFromComObject()
{
       seTapCode->Text=GetFieldValue(fiTapCode);
       memTapDesc->Text=GetFieldValue(fiTapDesc);
       scTapEmployee->LocateKey(GetFieldValue(fiTapEmployee));
       scTapEmployee->Text=scTapEmployee->ItemData[cbItem1];
       scTapMgr->Text=GetFieldValue(fiTapMgr);
       deTapDate->Text=GetFieldValue(fiTapDate);
       deTapEdate->Text=GetFieldValue(fiTapEdate);
       scTapState->LocateKey(GetFieldValue(fiTapState));
       seTapUser->LocateKey(GetFieldValue(fiTapUser));
       lbTapSysDate->Caption=GetFieldValue(fiTapSysDate);
       seTapORank->LocateKey(GetFieldValue(fiTapORank));
       seTapOShop->LocateKey(GetFieldValue(fiTapOShop));
       seTapOTeam->LocateKey(GetFieldValue(fiTapOTeam));
       scTapNRank->LocateKey(GetFieldValue(fiTapNRank));
       scTapNShop->LocateKey(GetFieldValue(fiTapNShop));
       scTapNTeam->LocateKey(GetFieldValue(fiTapNTeam));
       sgTap->LocateGrid(1,seTapCode->Text);

}
//---------------------------------------------------------------------------

void __fastcall TfrmTap::SendDataToComObject()
{
    if(scTapNRank->Text.IsEmpty())
       throw Exception("新职务不能为空");
//    if(scTapNShop->Text.IsEmpty())
//       throw Exception("新车间不能为空");
//    if(scTapNTeam->Text.IsEmpty())
//       throw Exception("新班组不能为空");
    if(seTapORank->ItemData[cbItem2]==scTapNRank->ItemData[cbItem2]&&
    seTapOShop->ItemData[cbItem2]==scTapNShop->ItemData[cbItem2]&&
    seTapOTeam->ItemData[cbItem2]==scTapNTeam->ItemData[cbItem2])
       throw Exception("该调职单没意义");
    WriteFieldValue(comServer,fiTapCode,WideString(seTapCode->Text));
    WriteFieldValue(comServer,fiTapDesc,WideString(memTapDesc->Text));
    WriteFieldValue(comServer,fiTapEmployee,WideString(scTapEmployee->ItemData[cbItem2]));
    WriteFieldValue(comServer,fiTapMgr,WideString(scTapMgr->Text));
    WriteFieldValue(comServer,fiTapDate,WideString(deTapDate->Text));
    WriteFieldValue(comServer,fiTapEdate,WideString(deTapEdate->Text));
    WriteFieldValue(comServer,fiTapState,WideString(scTapState->ItemData[cbItem2]));
    WriteFieldValue(comServer,fiTapUser,WideString(g_sdUserCode/*lbTapUser->Caption*/));
//    WriteFieldValue(comServer,fiTapSysDate,WideString(seTapSysDate->Text));
    WriteFieldValue(comServer,fiTapORank,WideString(seTapORank->ItemData[cbItem2]));
    WriteFieldValue(comServer,fiTapOShop,WideString(seTapOShop->ItemData[cbItem2]));
    WriteFieldValue(comServer,fiTapOTeam,WideString(seTapOTeam->ItemData[cbItem2]));
    WriteFieldValue(comServer,fiTapNRank,WideString(scTapNRank->ItemData[cbItem2]));
    WriteFieldValue(comServer,fiTapNShop,WideString(scTapNShop->ItemData[cbItem2]));
    WriteFieldValue(comServer,fiTapNTeam,WideString(scTapNTeam->ItemData[cbItem2]));

}
//---------------------------------------------------------------------------

void __fastcall TfrmTap::WaitUserInput()
{
    if(seTapCode->Enabled)
    seTapCode->SetFocus();
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmTap::GetDataToGrid()
{
    AnsiString  s;
    s = "\t" + GetFieldValue(fiTapCode)    +
        "\t" + GetFieldValue(fiTapEmployee)+
        "\t" + GetFieldValue(fiTapORank)+
        "\t" + GetFieldValue(fiTapNRank);
    return(s);
}
//---------------------------------------------------------------------------

void __fastcall TfrmTap::RefreshGridData(int mAction)
{
    AnsiString ItemStr;

    ItemStr =   GetDataToGrid();
    // 新增
    if (mAction ==  0)
    {
        sgTap->AddItem(ItemStr);
        sgTap->Row=sgTap->RowCount-1;
    }
    // 修改
    else if(mAction ==  1)
    {
     sgTap->ChangeItem(ItemStr,sgTap->Row);
    }
    // 删除
    else if(mAction ==  2)
    {
        sgTap->RemoveItem(sgTap->Row);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmTap::FillGridWithData()
{
    AnsiString ItemStr;

    comServer->MoveFirst();
    sgTap->RowCount = 1;
    while (comServer->Eof == 0)
    {
        ItemStr =   GetDataToGrid();
        sgTap->AddItem(ItemStr);
        comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmTap::InitEditControl()
{
    ClientGroup->AddComponent(2,true,true,false, sgTap,sgTap->Name);
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,false,true,true, scTapEmployee,scTapEmployee->Name);
    ClientGroup->AddComponent(2,false,true,false, seTapCode,seTapCode->Name);
    ClientGroup->AddComponent(2,true,true,true, seTapORank,seTapORank->Name);
    ClientGroup->AddComponent(2,true,true,true, seTapOShop,seTapOShop->Name);
    ClientGroup->AddComponent(2,true,true,true, seTapOTeam,seTapOTeam->Name);
    ClientGroup->AddComponent(2,true,true,true, scTapState,scTapState->Name);
    FillComboBox(scTapEmployee,"select Employee=EmployeeCode+'|'+EmployeeName,EmployeeCode from sdEmployee","Employee","EmployeeCode");
    scTapState->ClearAll();
    scTapState->AddItems("预备","1");
    scTapState->AddItems("确认","2");
    scTapState->AddItems("待下达","3");
    scTapState->AddItems("已下达","4");
    scTapState->AddItems("已完成","5");
    FillEdit(seTapORank,"select RankCode,RankName from sdRank","RankName","RankCode");
    FillComboBox(scTapNRank,"select RankCode,RankName from sdRank","RankName","RankCode");
    FillEdit(seTapOShop,"Select ShopCode,ShopName,ShopDeptCode from sdShop","ShopName","ShopCode","ShopDeptCode");
    FillComboBox(scTapNShop,"Select ShopCode,ShopName from sdShop","ShopName","ShopCode");
    FillEdit(seTapOTeam,"select TeamCode,TeamName from sdTeam","TeamName","TeamCode");
    FillComboBox(scTapNTeam,"select TeamCode,TeamName from sdTeam","TeamName","TeamCode");
    FillEdit(seTapUser,"select UserCode,UserName from SdUser","UserName","UserCode");

}
//---------------------------------------------------------------------------

__fastcall TfrmTap::TfrmTap(TComponent* Owner)
    : TRecBaseForm(Owner,euSdTap,"")
{
 AutoCtl=seTapCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmTap::FormShow(TObject *Sender)
{
    FillGridWithData();
    ClearControl(false);
    comServer->MoveFirst();
    GetDataFromComObject();
}

//---------------------------------------------------------------------------
void __fastcall TfrmTap::scTapEmployeeClick(TObject *Sender)
{
 try
 {
  WriteFieldValue(comServer,fiTapEmployee,scTapEmployee->ItemData[cbItem2]);
  seTapORank->LocateKey(GetFieldValue(fiTapORank));
  seTapOShop->LocateKey(GetFieldValue(fiTapOShop));
  FillComboBox(scTapNShop,"Select ShopCode,ShopName from sdShop where ShopDeptCode='"+seTapOShop->ItemData[cbItem3]+"'","ShopName","ShopCode");
  seTapOTeam->LocateKey(GetFieldValue(fiTapOTeam));
  scTapNShopClick(Sender);
  }
  catch(...)
  {
   CancelChange();
  }
}
//---------------------------------------------------------------------------

void __fastcall TfrmTap::sgTapClick(TObject *Sender)
{
    if (sgTap->Row > 0)
       comServer->LocateByKey(WideString(sgTap->TextMatrix[sgTap->Row][1]));
    if (!comServer->Eof)
       GetDataFromComObject();

}
//---------------------------------------------------------------------------
void  __fastcall TfrmTap::RefreshUpdateData(int MsgSrc,int MsgType)
{
switch(MsgSrc)
   {
  case euSdEmployee:
      if(ShowUpdateMessage(MsgSrc,MsgType))
       {
        KeyCode=scTapEmployee->ItemData[cbItem2];
        FillComboBox(scTapEmployee,"select Employee=EmployeeCode+'|'+EmployeeName,EmployeeCode from sdEmployee","Employee","EmployeeCode");
        scTapEmployee->LocateKey(KeyCode);
        }
      break;
  case euSdRank:
      if(ShowUpdateMessage(MsgSrc,MsgType))
       {
        KeyCode=scTapNRank->ItemData[cbItem2];
        FillComboBox(scTapNRank,"select RankCode,RankName from sdRank","RankName","RankCode");
        scTapNRank->LocateKey(KeyCode);
        }
      break;
  case euSdShop:
      if(ShowUpdateMessage(MsgSrc,MsgType))
      {
       KeyCode=scTapNShop->ItemData[cbItem2];
       if(CurrentState==caNormal)
          FillComboBox(scTapNShop,"Select ShopCode,ShopName from sdShop","ShopName","ShopCode");
       else
          FillComboBox(scTapNShop,"Select ShopCode,ShopName from sdShop where ShopDeptCode='"+seTapOShop->ItemData[cbItem3]+"'","ShopName","ShopCode");
        scTapNShop->LocateKey(KeyCode);
        }
       break;
  case euSdTeam:
      if(ShowUpdateMessage(MsgSrc,MsgType))
       {
        KeyCode=scTapNTeam->ItemData[cbItem2];
        if(CurrentState==caNormal)
          FillComboBox(scTapNTeam,"select TeamCode,TeamName from sdTeam","TeamName","TeamCode");
        else
          FillComboBox(scTapNTeam,"select TeamCode,TeamName from sdTeam where TeamShopCode='"+scTapNShop->ItemData[cbItem2]+"'","TeamName","TeamCode");
        scTapNTeam->LocateKey(KeyCode);
        }
      break;
   }
}
void __fastcall TfrmTap::scTapNShopClick(TObject *Sender)
{
     KeyCode=scTapNTeam->ItemData[cbItem2];
     FillComboBox(scTapNTeam,"select TeamCode,TeamName from sdTeam where TeamShopCode='"+scTapNShop->ItemData[cbItem2]+"'","TeamName","TeamCode");
     scTapNTeam->LocateKey(KeyCode);

}
//---------------------------------------------------------------------------

void __fastcall TfrmTap::muCancelClick(TObject *Sender)
{
   TRecBaseForm::muCancelClick(Sender);
   KeyCode=scTapNTeam->ItemData[cbItem2];
   FillComboBox(scTapNTeam,"select TeamCode,TeamName from sdTeam","TeamName","TeamCode");
   scTapNTeam->LocateKey(KeyCode);

}
//---------------------------------------------------------------------------

void __fastcall TfrmTap::muSaveClick(TObject *Sender)
{
   TRecBaseForm::muSaveClick(Sender);
   KeyCode=scTapNShop->ItemData[cbItem2];
   FillComboBox(scTapNShop,"Select ShopCode,ShopName from sdShop ","ShopName","ShopCode");
   scTapNShop->LocateKey(KeyCode);
   KeyCode=scTapNTeam->ItemData[cbItem2];
   FillComboBox(scTapNTeam,"select TeamCode,TeamName from sdTeam","TeamName","TeamCode");
   scTapNTeam->LocateKey(KeyCode);

}
//---------------------------------------------------------------------------

void __fastcall TfrmTap::seTapCodeKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
     if(Key==13 && CurrentState==caNormal)
    {
      comServer->LocateByKey(WideString(seTapCode->Text));
      GetDataFromComObject();
    }

}
//---------------------------------------------------------------------------

void __fastcall TfrmTap::muEditDetailClick(TObject *Sender)
{
   TRecBaseForm::muEditDetailClick(Sender);
   KeyCode=scTapNShop->ItemData[cbItem2];
   FillComboBox(scTapNShop,"Select ShopCode,ShopName from sdShop where ShopDeptCode='"+seTapOShop->ItemData[cbItem3]+"'","ShopName","ShopCode");
   scTapNShop->LocateKey(KeyCode);
   scTapNShopClick(Sender);

}
//---------------------------------------------------------------------------

void __fastcall TfrmTap::muAddDetailClick(TObject *Sender)
{
   TRecBaseForm::muAddDetailClick(Sender);
   scTapNShop->ClearAll();
   scTapNTeam->ClearAll();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -