📄 dml.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Dml.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"
TfrmDml *frmDml;
//---------------------------------------------------------------------------
__fastcall TfrmDml::TfrmDml(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,"")
{
}
//---------------------------------------------------------------------------
__fastcall TfrmDml::TfrmDml(TComponent* Owner, HWND chWnd, AnsiString MidCode,
AnsiString WhereStr,AnsiString ParamString)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
int iPos;
iPos=ParamString.Pos("\t");
FDmlGmthCode=ParamString.SubString(1,iPos-1);
ParamString=ParamString.SubString(iPos+1,ParamString.Length());
iPos=ParamString.Pos("\t");
FDmlGmthCheck=ParamString.SubString(1,iPos-1);
ParamString=ParamString.SubString(iPos+1,ParamString.Length());
iPos=ParamString.Pos("\t");
FDmlGmtdLine=ParamString.SubString(1,iPos-1);
ParamString=ParamString.SubString(iPos+1,ParamString.Length());
iPos=ParamString.Pos("\t");
FDmlGmtdWo=ParamString.SubString(1,iPos-1);
ParamString=ParamString.SubString(iPos+1,ParamString.Length());
iPos=ParamString.Pos("\t");
FDmlGmtdGoods=ParamString.SubString(1,iPos-1);
FDmlGmtdQty=ParamString.SubString(iPos+1,ParamString.Length());
SetCheckToolbarStatus(FDmlGmthCheck.ToInt());
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::ClearControl(bool BringToNext)
{
if(!BringToNext){
scDmlProcess->ItemIndex=-1;
scDmlProcess->Text="";
scDmlLoc->ItemIndex=-1;
scDmlLoc->Text="";
seDmlQty->Text="0.00";
tbQuery->Visible=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::GetDataFromComObject()
{
scDmlProcess->LocateKey(GetFieldValue("DmlProcess"));
//MoveFirst,MovePrority,MoveNext,MoveLast
sgDml->LocateGrid(0,GetFieldValue("DmlProcess"));
scDmlLoc->LocateKey(GetFieldValue("DmlLoc"));
seDmlQty->Text=GetFieldValue("DmlQty");
//当定额领料和工单领料已经审核时,不能做任何的操作。
if(FDmlGmthCheck==1)
{
SetCheckToolbarStatus(true);
tbAddHead->Enabled=false;
}
else
{
SetCheckToolbarStatus(false);
tbAddHead->Enabled=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::SendDataToComObject()
{
SetFieldValue("DmlGmtCode",seDmlGmtCode->Text);
SetFieldValue("DmlGmtdLine",seDmlGmtdLine->Text);
SetFieldValue("DmlWoCode",seDmlWoCode->Text);
SetFieldValue("DmlProcess",scDmlProcess->ItemData[1]);
SetFieldValue("DmlLoc",scDmlLoc->ItemData[1]);
SetFieldValue("DmlGoods",scDmlGoods->Text);
SetFieldValue("DmlUnit",scDmlGoodsUnit->ItemData[1]);
SetFieldValue("DmlQty",seDmlQty->Text);
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::WaitUserInput()
{
scDmlProcess->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmDml::GetDataToGrid()
{
AnsiString tempS;
tempS=GetFieldValue("DmlProcess")+
"\t" + GetFieldValue("DmlGoods")+
"\t" + GetFieldValue("DmlQty");
return(tempS);
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
if(mAction == 0)
{
sgDml->AddItem(ItemStr);
sgDml->Row=sgDml->RowCount-1;
}
else if(mAction == 1)
{
sgDml->ChangeItem(ItemStr,sgDml->Row);
}
else if(mAction == 2)
{
sgDml->RemoveItem(sgDml->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgDml->RowCount = 1;
while(comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgDml->AddItem(ItemStr);
comServer->MoveNext();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true,FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,true,seDmlGmtCode,seDmlGmtCode->Name);
ClientGroup->AddComponent(2,true,true,true,seDmlGmtdLine,seDmlGmtdLine->Name);
ClientGroup->AddComponent(2,true,true,true,seDmlWoCode,seDmlWoCode->Name);
ClientGroup->AddComponent(2,true,true,true,scDmlGoods,scDmlGoods->Name);
ClientGroup->AddComponent(2,true,true,true,scDmlLoc,scDmlLoc->Name);
ClientGroup->AddComponent(2,true,true,false,sgDml,sgDml->Name);
ClientGroup->AddComponent(2,true,true,true,seDmlGmtdQty,seDmlGmtdQty->Name);
ClientGroup->AddComponent(2,true,true,true,Panel1,Panel1->Name);
FillComboBox(Handle,scDmlLoc,"select LocCode+ space(1)+'('+LocName+')' memo,LocCode from sdLoc where LocType=2 Order by LocCode","memo","LocCode");
FillComboBox(Handle,scDmlGoodsUnit,"select UnitName,UnitCode from sdUnit Order by UnitCode","UnitName","UnitCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
try
{
switch (MsgSrc)
{
case euSdLoc:
if(ShowUpdateMessage(MsgSrc,MsgType)){
StartWaitForm("正在刷新引用数据!");
FillComboBox(Handle,scDmlLoc,"select LocCode+ space(1)+'('+LocName+')' memo,LocCode from sdLoc Order by LocCode","memo","LocCode");
EndWaitForm();
break;
}
case euSdUnit:
if(ShowUpdateMessage(MsgSrc,MsgType)){
StartWaitForm("正在刷新引用数据!");
FillComboBox(Handle,scDmlGoodsUnit,"select UnitName,UnitCode from sdUnit Order by UnitCode","UnitName","UnitCode");
EndWaitForm();
break;
}
default:
break;
}
}
__finally
{
//AddCode;
}
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::FormClose(TObject *Sender, TCloseAction &Action)
{
TRecBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::FormShow(TObject *Sender)
{
ClearControl(false);
seDmlGmtCode->Text=FDmlGmthCode;
seDmlGmtdLine->Text=FDmlGmtdLine;
seDmlGmtdQty->Text=FDmlGmtdQty;
seDmlWoCode->Text=FDmlGmtdWo;
FillComboBox(Handle,scDmlProcess,"select WrgProcess+space(1)+'('+WrgName+')' memo,WrgProcess,WrgLoc from sdWrg Where WrgWo='"+FDmlGmtdWo+"' Order by WrgProcess","memo","WrgProcess","WrgLoc");
scDmlGoods->Text=FDmlGmtdGoods;
// l_RsGoods->LocateByKey(FDmlGmtdGoods);
InitRsGoods(FDmlGmtdGoods);
seDmlGoodsName->Text=GetGoodsValue(gtInitRs,"GoodsName");
scDmlGoodsUnit->LocateKey(GetGoodsValue(gtInitRs,"GoodsUnitCode"));
scDmlGoodsType->ItemIndex= StrToInt(GetGoodsValue(gtInitRs,"GoodsType"));
scDmlGoodsFrom->ItemIndex= StrToInt(GetGoodsValue(gtInitRs,"GoodsFrom"));
sgDml->RowCount=1;
comServer->FilterString=" DmlGmtCode ='" +FDmlGmthCode +"' and DmlGmtdLine ='"+FDmlGmtdLine+"'" ;
comServer->Query();
if(comServer->RecordCount>0)
{
FillGridWithData();
GetDataFromComObject();
}
else
{
ClearControl(false);
sgDml->RowCount=1;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::scDmlProcessClick(TObject *Sender)
{
AnsiString asTemp,asLocCode;
asTemp=scDmlProcess->ItemData[cbItem2];
if(!asTemp.IsEmpty())
{
asLocCode=scDmlProcess->ItemData[cbItem3];
scDmlLoc->LocateKey(asLocCode);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::sgDmlClick(TObject *Sender)
{
int ARow;
ARow=sgDml->Row;
if(ARow > 0)
{
//comServer->LocateByKey(seDmlGmtCode->Text+"\t"+seDmlGmtdLine->Text+"\t"+sgDml->TextMatrix[ARow][0]);
comServer->LocateByKey(FDmlGmthCode+"\t"+FDmlGmtdLine+"\t"+sgDml->TextMatrix[ARow][0]);
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -