📄 wpe.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 + -