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

📄 wpe.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Wpe.h"
#include "func.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmWpe *frmWpe;
//---------------------------------------------------------------------------
__fastcall TfrmWpe::TfrmWpe(TComponent* Owner)
    : TRecBaseForm(Owner,euSdWpe,"")
{
}
//---------------------------------------------------------------------------
__fastcall TfrmWpe::TfrmWpe(TComponent* Owner,AnsiString FWoCode,AnsiString FWrgProcess,int FWoCheck,int FWoCancel)
    : TRecBaseForm(Owner,euSdWpe,"WpeWo='"+FWoCode+"' and WpeProcess = '" + FWrgProcess + "'")
{
    FWpeWo=FWoCode;
    FWpeProcess=FWrgProcess;
    FWpeWoCheck=FWoCheck;
    FWpeWoCancel=FWoCancel;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmWpe::GetFieldValue(int FieldIndex)
{
    return ReadFieldValue(comServer,FieldIndex);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::SetFieldValue(int FieldIndex,AnsiString Value)
{
    WriteFieldValue(comServer,FieldIndex,Value);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
        scWpeShop->ItemIndex    = -1;
        scWpeTeam->ClearAll();
        scWpeTeam->ItemIndex    = -1;
        scWpeEmployee->ClearAll();
        scWpeEmployee->ItemIndex= -1;
        seWpeEmployeeName->Text = "";
        scWpeEmployeeSex->ItemIndex = -1;
        seWpeEmployeeTow->Text  = "";
        scWpeWageType->ItemIndex= -1;
        seWpeLabRate->Text      = "0.00";
        seWpePieceRate->Text    = "0.00";
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::GetDataFromComObject()
{
    scWpeShop->LocateKey(GetFieldValue(fiWpeShop));
    scWpeShopClick(this);
    scWpeTeam->LocateKey(GetFieldValue(fiWpeTeam));
    if(scWpeTeam->ItemIndex!=-1)
       scWpeTeamClick(this);
    scWpeEmployee->LocateKey(GetFieldValue(fiWpeEmployee));
    //MoveFirst,MovePrority,MoveNext,MoveLast
    sgWpe->LocateGrid(0,GetFieldValue(fiWpeEmployee));
    seWpeEmployeeName->Text = scWpeEmployee->ItemData[cbItem3];
    if(!scWpeEmployee->ItemData[cbItem4].IsEmpty())
        scWpeEmployeeSex->ItemIndex =StrToInt(scWpeEmployee->ItemData[cbItem4]);
    else
        scWpeEmployeeSex->Text ="";
    seWpeEmployeeTow->Text  = scWpeEmployee->ItemData[cbItem5];

    scWpeWageType->ItemIndex= StrToInt(GetFieldValue(fiWpeWageType))-1;
    if(GetFieldValue(fiWpeWageType)==1)
    {
       seWpeLabRate->Text      = GetFieldValue(fiWpeLabRate);
       seWpePieceRate->Text    = "0.00";
    }
    else if(GetFieldValue(fiWpeWageType)==2)
    {
       seWpeLabRate->Text      = "0.00";
       seWpePieceRate->Text    = GetFieldValue(fiWpePieceRate);
    }
    else
    {
       seWpeLabRate->Text      = "0.00";
       seWpePieceRate->Text    = "0.00";
    }
    //
    SetToolBarEnable();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::SendDataToComObject()
{
    SetFieldValue(fiWpeWo,labWpeWo->Caption);
    SetFieldValue(fiWpeProcess,scWpeProcess->ItemData[cbItem2]);
    SetFieldValue(fiWpeEmployee,scWpeEmployee->ItemData[cbItem2]);
    SetFieldValue(fiWpeShop,scWpeShop->ItemData[cbItem2]);
    SetFieldValue(fiWpeTeam,scWpeTeam->ItemData[cbItem2]);
    SetFieldValue(fiWpeWageType,IntToStr(scWpeWageType->ItemIndex+1));
    SetFieldValue(fiWpeLabRate,seWpeLabRate->Text);
    SetFieldValue(fiWpePieceRate,seWpePieceRate->Text);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::SetToolBarEnable()
{
    if(FWpeWoCheck==1 || FWpeWoCancel==1)
    {
      tbAddHead->Enabled=false;
      tbEditHead->Enabled=false;
      tbDeleteHead->Enabled=false;
      muAddDetail->Enabled=false;
      muEditDetail->Enabled=false;
      muDeleteDetail->Enabled=false;
      muCancel->Enabled =false;
      muSave->Enabled =false;
    }
    else
    {
      tbAddHead->Enabled=true;
      tbEditHead->Enabled=true;
      tbDeleteHead->Enabled=true;
      muAddDetail->Enabled=true;
      muEditDetail->Enabled=true;
      muDeleteDetail->Enabled=true;
      muCancel->Enabled =true;
      muSave->Enabled =true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmWpe::WaitUserInput()
{
    if(scWpeShop->Enabled)
       scWpeShop->SetFocus();
    AnsiString FWageType;
    FWageType=GetFieldValue(fiWpeWageType);
    if(FWageType==1)
    {
       seWpeLabRate->Enabled=true;
       seWpePieceRate->Enabled=false;
    }
    else
    {
       seWpeLabRate->Enabled=false;
       seWpePieceRate->Enabled=true;
    }
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmWpe::GetDataToGrid()
{
    AnsiString FWageType,s_STR;
    s_STR = GetFieldValue(fiWpeEmployee);
    FWageType=GetFieldValue(fiWpeWageType);
    if(FWageType==1)
       s_STR= s_STR + "\t" + "计时工资"+"\t"+GetFieldValue(fiWpeLabRate);
    else
       s_STR= s_STR + "\t" + "计件工资"+"\t"+GetFieldValue(fiWpePieceRate);
    return(s_STR);
}
//---------------------------------------------------------------------------

void __fastcall TfrmWpe::RefreshGridData(int mAction)
{
    AnsiString ItemStr;
    ItemStr = GetDataToGrid();
    if(mAction == 0)
    {
       sgWpe->AddItem(ItemStr);
       sgWpe->Row=sgWpe->RowCount-1;
    }
    else if(mAction == 1)
    {
       int i = sgWpe->Row;
       sgWpe->ChangeItem(ItemStr,i);
    }
    else if(mAction == 2)
    {
       sgWpe->RemoveItem(sgWpe->Row);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmWpe::FillGridWithData()
{
    AnsiString ItemStr;
    comServer->MoveFirst();
    sgWpe->RowCount = 1;
    while(comServer->Eof == 0)
    {
       ItemStr = GetDataToGrid();
       sgWpe->AddItem(ItemStr);
       comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmWpe::InitEditControl()
{
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,false, scWpeProcess,scWpeProcess->Name);
    ClientGroup->AddComponent(2,true,true,false, sgWpe,sgWpe->Name);
    ClientGroup->AddComponent(2,true,true,true, scWpeProcess,scWpeProcess->Name);
    ClientGroup->AddComponent(2,true,true,true, Panel1,Panel1->Name);
    ClientGroup->AddComponent(2,true,true,true, seWpeLabRate,seWpeLabRate->Name);
    ClientGroup->AddComponent(2,true,true,true, seWpePieceRate,seWpePieceRate->Name);
    scWpeWageType->ClearAll();
    scWpeWageType->AddItems("1-计时工资","1");
    scWpeWageType->AddItems("2-计件工资","2");
    FillComboBox(scWpeShop,"SELECT ShopCode,memo=ShopCode+space(1)+'('+ShopName+')' FROM sdShop order by ShopCode","memo","ShopCode");
}
//---------------------------------------------------------------------------

void __fastcall TfrmWpe::RefreshUpdateData(int MsgSrc,int MsgType)
{
    try
    {
       switch (MsgSrc)
       {
         case euSdShop:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(scWpeShop,"SELECT ShopCode,memo=ShopCode+space(1)+'('+ShopName+')' FROM sdShop order by ShopCode","memo","ShopCode");
	           EndWaitForm();
	           break;
           }
       }
    }
    __finally
    {
        //AddCode;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::FormClose(TObject *Sender, TCloseAction &Action)
{
    SetInifileValue(this->Name,"AutoQuery","1",ExtractFileDir(Application->ExeName)+"\\sdFormSet.dat");
    TRecBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::FormCreate(TObject *Sender)
{
/*
    AnsiString FormIniFile="D:\Test.Ini";
    SetGridWidth(Name,sgPg,FormIniFile);
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::FormShow(TObject *Sender)
{
    AnsiString tempS;
    ClearControl(false);
    labWpeWo->Caption=FWpeWo;
    FillComboBox(scWpeProcess,"SELECT WrgProcess+Space(1)+'('+WrgName+')' memo,WrgProcess FROM sdWrg where WrgWo='"+FWpeWo+"' order by WrgProcess",
                 "memo","WrgProcess");
    scWpeProcess->LocateKey(FWpeProcess);
    scWpeProcess->Text=scWpeProcess->ItemData[cbItem1];

    //---填充Grid---
    FillGridWithData();
    if(comServer->RecordCount>0)
    {
       comServer->MoveFirst();
       GetDataFromComObject();
    }
    else
       ClearControl(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::scWpeEmployeeClick(TObject *Sender)
{
    AnsiString tempS;
    tempS=Trim(scWpeEmployee->ItemData[1]);
    if(scWpeTeam->ItemIndex==-1)
    {
       ::MessageBox(Handle,"员工对应的班组不能为空!","操作错误",MB_OK|MB_ICONSTOP);
       if(scWpeTeam->Enabled)
          scWpeTeam->SetFocus();
       scWpeEmployee->ClearAll();
       return;
    }
    if(!tempS.IsEmpty())
    {
       seWpeEmployeeName->Text = scWpeEmployee->ItemData[cbItem3];
       if(!scWpeEmployee->ItemData[cbItem4].IsEmpty())
          scWpeEmployeeSex->ItemIndex =StrToInt(scWpeEmployee->ItemData[cbItem4]);
       else
          scWpeEmployeeSex->Text ="";
       seWpeEmployeeTow->Text  = scWpeEmployee->ItemData[cbItem5];
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmWpe::sgWpeClick(TObject *Sender)
{
    int ARow;
    ARow=sgWpe->Row;
    if (ARow > 0)
       comServer->LocateByKey(WideString(labWpeWo->Caption+scWpeProcess->ItemData[cbItem2]+sgWpe->TextMatrix[ARow][0]));
    if (!comServer->Eof)
       GetDataFromComObject();
}
//---------------------------------------------------------------------------

void __fastcall TfrmWpe::scWpeShopClick(TObject *Sender)
{
    if(scWpeShop->ItemIndex!=-1)
       FillComboBox(scWpeTeam,"SELECT TeamCode,memo=TeamCode+space(1)+'('+TeamName+')' FROM sdTeam where TeamShopCode='"+scWpeShop->ItemData[1]+"' order by TeamCode",
                    "memo","TeamCode");
}
//---------------------------------------------------------------------------

void __fastcall TfrmWpe::scWpeTeamClick(TObject *Sender)
{
    if(scWpeShop->ItemIndex==-1)
    {
       ::MessageBox(Handle,"班组对应的车间不能为空!","操作错误",MB_OK|MB_ICONSTOP);
       if(scWpeShop->Enabled)
          scWpeShop->SetFocus();
       return;
    }
    if(scWpeTeam->ItemIndex!=-1)
       FillComboBox(scWpeEmployee,"Select memo=TeEmployee+space(1)+'('+EmployeeName+')',TeEmployee,EmployeeName,EmployeeSex,EmployeeTow from sdTe,sdEmployee where TeEmployee=EmployeeCode and TeTeam='"+scWpeTeam->ItemData[1]+"' order by EmployeeCode",
                    "memo","TeEmployee","EmployeeName","EmployeeSex","EmployeeTow");
}
//---------------------------------------------------------------------------

void __fastcall TfrmWpe::scWpeWageTypeClick(TObject *Sender)
{
    AnsiString FItemData;
    FItemData=scWpeWageType->ItemData[1];
    if(FItemData==1)
    {
       seWpeLabRate->Enabled=true;
       seWpePieceRate->Enabled=false;
       seWpePieceRate->Text="0.00";
    }
    else
    {
       seWpeLabRate->Enabled=false;
       seWpePieceRate->Enabled=true;
       seWpeLabRate->Text="0.00";
    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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