📄 wpe.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Wpe.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, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,"")
{
}
//---------------------------------------------------------------------------
__fastcall TfrmWpe::TfrmWpe(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr,AnsiString ParamString)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
int iPos;
iPos=ParamString.Pos("\t");
FWpeWo=ParamString.SubString(1,iPos-1);
ParamString=ParamString.SubString(iPos+1,ParamString.Length());
iPos=ParamString.Pos("\t");
FWpeProcess=ParamString.SubString(1,iPos-1);
ParamString=ParamString.SubString(iPos+1,ParamString.Length());
iPos=ParamString.Pos("\t");
FWpeWoCheck=StrToInt(ParamString.SubString(1,iPos-1));
FWpeWoCancel=StrToInt(ParamString.SubString(iPos+1,ParamString.Length()));
}
//---------------------------------------------------------------------------
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("WpeShop"));
scWpeShopClick(this);
scWpeTeam->LocateKey(GetFieldValue("WpeTeam"));
if(scWpeTeam->ItemIndex!=-1)
scWpeTeamClick(this);
scWpeEmployee->LocateKey(GetFieldValue("WpeEmployee"));
//MoveFirst,MovePrority,MoveNext,MoveLast
sgWpe->LocateGrid(0,GetFieldValue("WpeEmployee"));
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("WpeWageType"))-1;
if(GetFieldValue("WpeWageType")==1)
{
seWpeLabRate->Text = GetFieldValue("WpeLabRate");
seWpePieceRate->Text = "0.00";
}
else if(GetFieldValue("WpeWageType")==2)
{
seWpeLabRate->Text = "0.00";
seWpePieceRate->Text = GetFieldValue("WpePieceRate");
}
else
{
seWpeLabRate->Text = "0.00";
seWpePieceRate->Text = "0.00";
}
//
SetToolBarEnable();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::SendDataToComObject()
{
SetFieldValue("WpeWo",labWpeWo->Caption);
SetFieldValue("WpeProcess",scWpeProcess->ItemData[cbItem2]);
SetFieldValue("WpeEmployee",scWpeEmployee->ItemData[cbItem2]);
SetFieldValue("WpeShop",scWpeShop->ItemData[cbItem2]);
SetFieldValue("WpeTeam",scWpeTeam->ItemData[cbItem2]);
SetFieldValue("WpeWageType",IntToStr(scWpeWageType->ItemIndex+1));
SetFieldValue("WpeLabRate",seWpeLabRate->Text);
SetFieldValue("WpePieceRate",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("WpeWageType");
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("WpeEmployee");
FWageType=GetFieldValue("WpeWageType");
if(FWageType==1)
s_STR= s_STR + "\t" + "计时工资"+"\t"+GetFieldValue("WpeLabRate");
else
s_STR= s_STR + "\t" + "计件工资"+"\t"+GetFieldValue("WpePieceRate");
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(Handle,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(Handle,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)
{
TRecBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::FormShow(TObject *Sender)
{
AnsiString tempS;
ClearControl(false);
tbGenrate->Visible=false;
labWpeWo->Caption=FWpeWo;
FillComboBox(Handle,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(labWpeWo->Caption+"\t"+scWpeProcess->ItemData[cbItem2]+"\t"+sgWpe->TextMatrix[ARow][0]);
if(comServer->RecordCount>0)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWpe::scWpeShopClick(TObject *Sender)
{
if(scWpeShop->ItemIndex!=-1)
FillComboBox(Handle,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(Handle,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 + -