📄 loc.cpp
字号:
//---------------------------------------------------------------------------
#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;
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmLoc::GetFieldValue(int FieldIndex)
{
AnsiString S;
S = ReadFieldValue(comServer,FieldIndex);
return(S);
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
seLocCode->Text = "";
seLocName->Text = "";
memLocDesc->Text = "";
scLocType->ItemIndex= 0;
scLocStkCode->ItemIndex=0;
cheLocVirtual->Checked=false;
cheLocPlnflg->Checked =false;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::GetDataFromComObject()
{
seLocCode->Text = GetFieldValue(fiLocCode);
sgLoc->LocateGrid(1,GetFieldValue(fiLocCode));
seLocName->Text = GetFieldValue(fiLocName);
memLocDesc->Text = GetFieldValue(fiLocDesc);
scLocType->LocateKey(GetFieldValue(fiLocType));
scLocStkCode->LocateKey(GetFieldValue(fiLocStkCode));
cheLocVirtual->Checked= GetFieldValue(fiLocVirtual)=="1";
cheLocPlnflg->Checked = GetFieldValue(fiLocPlnflg)=="1";
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::SendDataToComObject()
{
WriteFieldValue(comServer,fiLocSthCode, scLocSthCode->ItemData[1]);
WriteFieldValue(comServer,fiLocCode, seLocCode->Text);
WriteFieldValue(comServer,fiLocName, seLocName->Text);
WriteFieldValue(comServer,fiLocDesc, memLocDesc->Text);
if(scLocType->ItemData[1] == "")
throw Exception("请选择货位类型");
WriteFieldValue(comServer,fiLocType, scLocType->ItemData[1]);
if(scLocStkCode->ItemData[1] == "")
throw Exception("请选择盘点方法");
WriteFieldValue(comServer,fiLocStkCode, scLocStkCode->ItemData[1]);
WriteFieldValue(comServer,fiLocVirtual, cheLocVirtual->Checked ? "1":"0");
WriteFieldValue(comServer,fiLocPlnflg, cheLocPlnflg->Checked ? "1":"0");
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::WaitUserInput()
{
seLocCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmLoc::GetDataToGrid()
{
AnsiString s;
s = "\t" + GetFieldValue(fiLocCode) +
"\t" + GetFieldValue(fiLocName) ;
if (GetFieldValue(fiLocVirtual)=="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(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)
: TRecBaseForm(Owner,euSdLoc,"")
{
OldLocCode="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::FormClose(TObject *Sender, TCloseAction &Action)
{
TRecBaseForm::FormClose(Sender,Action);
/*
AnsiString FormIniFile = "D:\Test.Ini";
WriteGridWidth(Name,sgLoc,FormIniFile);
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::FormCreate(TObject *Sender)
{
/*
AnsiString FormIniFile="D:\Test.Ini";
SetGridWidth(Name,sgLoc,FormIniFile);
*/
}
//---------------------------------------------------------------------------
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;
if (ARow > 0)
comServer->LocateByKey(WideString(sgLoc->TextMatrix[ARow][1]));
if (!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::RefreshUpdateData(int MsgSrc,int MsgType)
{
switch(MsgSrc)
{
case euSdSth:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(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();
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -