loc.cpp
来自「科思ERP部分源码及控件」· C++ 代码 · 共 290 行
CPP
290 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Loc.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
TfrmLoc *frmLoc;
AnsiString OldLocCode;
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
seLocCode->Text = "";
seLocName->Text = "";
memLocDesc->Text = "";
scLocType->ItemIndex= 0;
scLocStkCode->ItemIndex=0;
seLong->Text = "0.00";/////
seWidth->Text = "0.00";/////
seHeight->Text = "0.00";/////
seCubag->Text = "0.00";/////
chFreez->Checked=false;
cheLocVirtual->Checked=false;
cheLocPlnflg->Checked =false;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::GetDataFromComObject()
{
seLocCode->Text = GetFieldValue("LocCode");
sgLoc->LocateGrid(1,GetFieldValue("LocCode"));
seLocName->Text = GetFieldValue("LocName");
memLocDesc->Text = GetFieldValue("LocDesc");
scLocType->LocateKey(GetFieldValue("LocType"));
scLocStkCode->LocateKey(GetFieldValue("LocStkCode"));
cheLocVirtual->Checked= GetFieldValue("LocVirtual")=="1";
cheLocPlnflg->Checked = GetFieldValue("LocPlnflg")=="1";
seLong->Text = GetFieldValue("LocLength");
seWidth->Text = GetFieldValue("LocWidth");
seHeight->Text = GetFieldValue("LocHeigh");
seCubag->Text = GetFieldValue("LocCubage");
chFreez->Checked=GetFieldValue("LocRgate")=="1";
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::SendDataToComObject()
{
SetFieldValue("LocSthCode", scLocSthCode->ItemData[1]);
SetFieldValue("LocCode", seLocCode->Text);
SetFieldValue("LocName", seLocName->Text);
SetFieldValue("LocDesc", memLocDesc->Text);
if(scLocType->ItemData[1] == "")
throw Exception("请选择货位类型");
SetFieldValue("LocType", scLocType->ItemData[1]);
if(scLocStkCode->ItemData[1] == "")
throw Exception("请选择盘点方法");
SetFieldValue("LocStkCode", scLocStkCode->ItemData[1]);
SetFieldValue("LocVirtual", cheLocVirtual->Checked ? "1":"0");
SetFieldValue("LocPlnflg", cheLocPlnflg->Checked ? "1":"0");
AnsiString ll;
ll= seLong->Text;
if(ll.IsEmpty())
ll=0 ;
SetFieldValue("LocLength", ll);
if(Trim(seWidth->Text)=="")
seWidth->Text=0.00;
SetFieldValue("LocWidth",seWidth->Text);
if(Trim(seHeight->Text)=="")
seHeight->Text="0.00";
SetFieldValue("LocHeigh",seHeight->Text);
if(Trim(seCubag->Text)=="")
seCubag->Text="0.00";
SetFieldValue("LocCubage",seCubag->Text);
SetFieldValue("LocRgate",chFreez->Checked ? "1":"0");
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::WaitUserInput()
{
seLocCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmLoc::GetDataToGrid()
{
AnsiString s;
s = "\t" + GetFieldValue("LocCode") +
"\t" + GetFieldValue("LocName") ;
if (GetFieldValue("LocVirtual")=="0")
s = s + "\t" + "否";
else
s = s + "\t" + "是";
return(s);
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
if (mAction == 0)
{
sgLoc->AddItem(ItemStr);
}
else if(mAction == 1)
{
int i = sgLoc->Row;
sgLoc->ChangeItem(ItemStr,i);
}
else if(mAction == 2)
{
sgLoc->RemoveItem(sgLoc->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgLoc->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgLoc->AddItem(ItemStr);
comServer->MoveNext();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false, scLocSthCode,scLocSthCode->Name);
// ClientGroup->AddComponent(2,false,false,false, seLocCode,seLocCode->Name);
ClientGroup->AddComponent(2,true,true,false, sgLoc,sgLoc->Name);
FillComboBox(Handle,scLocSthCode,"SELECT SthCode,SthName FROM sdSth order by SthCode","SthName","SthCode");
scLocType->AddItems("1-存储","1");
scLocType->AddItems("2-在制","2");
scLocType->AddItems("3-待检","3");
scLocType->AddItems("4-待发","4");
scLocType->AddItems("5-在途","5");
scLocType->AddItems("6-维修","6");
scLocType->AddItems("7-次品","7");
scLocType->AddItems("8-废品","8");
scLocType->AddItems("9-待处理","9");
scLocStkCode->AddItems("1-一般盘点","1");
scLocStkCode->AddItems("2-定期盘点","2");
scLocStkCode->AddItems("3-循环盘点","3");
}
//---------------------------------------------------------------------------
__fastcall TfrmLoc::TfrmLoc(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
OldLocCode="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::FormClose(TObject *Sender, TCloseAction &Action)
{
TRecBaseForm::FormClose(Sender,Action);
/*
AnsiString FormIniFile = "D:\Test.Ini";
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::FormCreate(TObject *Sender)
{
/*
AnsiString FormIniFile="D:\Test.Ini";
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::FormShow(TObject *Sender)
{
ClearControl(false);
if(scLocSthCode->Items->Count > 0)
{
scLocSthCode->Text=scLocSthCode->Items->Strings[0];
scLocSthCodeClick(NULL);
}
sgLoc->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::scLocSthCodeClick(TObject *Sender)
{
WideString s;
s = scLocSthCode->ItemData[1];
if(s.IsEmpty())
return;
if(OldLocCode==s)
return;
OldLocCode=scLocSthCode->Text;
s = "LocSthCode = '" + s + "'";
comServer->FilterString = s;
comServer->Query();
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::sgLocClick(TObject *Sender)
{
int ARow=sgLoc->Row;
AnsiString sKeyValue;
if (ARow > 0)
{
sKeyValue=sgLoc->Cells[1][ARow]+"\t"+scLocSthCode->ItemData[1]+"\t";
ARow=comServer->LocateByKey(sKeyValue);
}
if (!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
switch(MsgSrc)
{
case euSdSth:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(Handle,scLocSthCode,"SELECT SthCode,SthName FROM sdSth order by SthCode","SthName","SthCode");
scLocSthCodeClick(NULL);
}
break;
default:
break;
}
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::seLocCodeExit(TObject *Sender)
{
if(CurrentState==caNormal)
{
comServer->LocateByKey(WideString(seLocCode->Text));
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::BackDisp()
{
double dLong,dWidth,dHeight,dCubag;
if(seLong->Text != "" && seWidth->Text != ""&& seHeight->Text != "")
{
dLong=StrToFloat(seLong->Text);
dWidth=StrToFloat(seWidth->Text);
dHeight=StrToFloat(seHeight->Text);
dCubag=dLong*dWidth*dHeight;
seCubag->Text=DataCarry(dCubag,2,0);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::seHeightExit(TObject *Sender)
{
BackDisp();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?