📄 plnhdl.cpp
字号:
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TsdMps::~TsdMps()
{
try
{
}
catch(...)
{
throw Exception("析构函数出错!");
}
}
//---------------------------------------------------------------------------
void TsdMps::BackupValue()
{
b_MpsGoods=m_MpsGoods;
b_MpsRDate=m_MpsRDate;
b_MpsRQty=m_MpsRQty;
b_MpsGQty=m_MpsGQty;
b_MpsDate=m_MpsDate;
b_MpsPlanner=m_MpsPlanner;
b_MpsCheck=m_MpsCheck;
b_MpsChecker=m_MpsChecker;
b_MpsCheckDate=m_MpsCheckDate;
b_MpsState=m_MpsState;
b_MpsSysDate=m_MpsSysDate;
}
//---------------------------------------------------------------------------
void TsdMps::RestoreValue()
{
m_MpsGoods=b_MpsGoods;
m_MpsRDate=b_MpsRDate;
m_MpsRQty=b_MpsRQty;
m_MpsGQty=b_MpsGQty;
m_MpsDate=b_MpsDate;
m_MpsPlanner=b_MpsPlanner;
m_MpsCheck=b_MpsCheck;
m_MpsChecker=b_MpsChecker;
m_MpsCheckDate=b_MpsCheckDate;
m_MpsState=b_MpsState;
m_MpsSysDate=b_MpsSysDate;
}
//---------------------------------------------------------------------------
void TsdMps::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_MpsGoods="";
m_MpsRDate="";
m_MpsRQty=0;
m_MpsGQty=0;
m_MpsDate="";
m_MpsPlanner="";
m_MpsCheck=0;
m_MpsChecker="";
m_MpsCheckDate="";
m_MpsState=0;
m_MpsSysDate="";
break;
case 1:
b_MpsGoods="";
b_MpsRDate="";
b_MpsRQty=0;
b_MpsGQty=0;
b_MpsDate="";
b_MpsPlanner="";
b_MpsCheck=0;
b_MpsChecker="";
b_MpsCheckDate="";
b_MpsState=0;
b_MpsSysDate="";
break;
}
}
//---------------------------------------------------------------------------
void TsdMps::BatchLetValue()
{
m_MpsGoods=m_Query->FieldValues["MpsGoods"];
m_MpsRDate=m_Query->FieldValues["MpsRDate"];
m_MpsRQty=m_Query->FieldValues["MpsRQty"];
m_MpsGQty=m_Query->FieldValues["MpsGQty"];
m_MpsDate=m_Query->FieldValues["MpsDate"];
m_MpsPlanner=m_Query->FieldValues["MpsPlanner"];
m_MpsCheck=m_Query->FieldValues["MpsCheck"];
m_MpsChecker=m_Query->FieldValues["MpsChecker"];
m_MpsCheckDate=m_Query->FieldValues["MpsCheckDate"];
m_MpsState=m_Query->FieldValues["MpsState"];
m_MpsSysDate=m_Query->FieldValues["MpsSysDate"];
BackupValue();
}
//---------------------------------------------------------------------------
void TsdMps::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(m_MpsGoods.IsEmpty()==true)
throw Exception("货物编号不能为空!");
m_StoredProc->Close();
if(CurStatus==2 || CurStatus==4)
{
m_StoredProc->ProcedureName="sdMps_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@MpsGoods",ftString,pdInput,18,m_MpsGoods);
m_StoredProc->Parameters->CreateParameter("@MpsRDate",ftString,pdInput,10,m_MpsRDate);
m_StoredProc->Parameters->CreateParameter("@MpsRQty",ftFloat,pdInput,12,m_MpsRQty);
m_StoredProc->Parameters->CreateParameter("@MpsGQty",ftFloat,pdInput,12,m_MpsGQty);
m_StoredProc->Parameters->CreateParameter("@MpsDate",ftString,pdInput,10,m_MpsDate);
m_StoredProc->Parameters->CreateParameter("@MpsPlanner",ftString,pdInput,18,m_MpsPlanner);
m_StoredProc->Parameters->CreateParameter("@MpsCheck",ftInteger,pdInput,1,m_MpsCheck);
m_StoredProc->Parameters->CreateParameter("@MpsChecker",ftString,pdInput,18,m_MpsChecker);
m_StoredProc->Parameters->CreateParameter("@MpsCheckDate",ftString,pdInput,10,m_MpsCheckDate);
m_StoredProc->Parameters->CreateParameter("@MpsState",ftInteger,pdInput,1,m_MpsState);
m_StoredProc->Parameters->CreateParameter("@MpsSysDate",ftString,pdOutput,30,m_MpsSysDate);
m_StoredProc->ExecProc();
m_MpsSysDate=m_StoredProc->Parameters->ParamValues["@MpsSysDate"];
m_StoredProc->Close();
}
else
{
m_StoredProc->ProcedureName="sdMps_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_MpsGoods",ftString,pdInput,18,b_MpsGoods);
m_StoredProc->Parameters->CreateParameter("@W_MpsRDate",ftString,pdInput,10,b_MpsRDate);
m_StoredProc->Parameters->CreateParameter("@MpsGoods",ftString,pdInput,18,m_MpsGoods);
m_StoredProc->Parameters->CreateParameter("@MpsRDate",ftString,pdInput,10,m_MpsRDate);
m_StoredProc->Parameters->CreateParameter("@MpsRQty",ftFloat,pdInput,12,m_MpsRQty);
m_StoredProc->Parameters->CreateParameter("@MpsGQty",ftFloat,pdInput,12,m_MpsGQty);
m_StoredProc->Parameters->CreateParameter("@MpsDate",ftString,pdInput,10,m_MpsDate);
m_StoredProc->Parameters->CreateParameter("@MpsPlanner",ftString,pdInput,18,m_MpsPlanner);
m_StoredProc->Parameters->CreateParameter("@MpsCheck",ftInteger,pdInput,1,m_MpsCheck);
m_StoredProc->Parameters->CreateParameter("@MpsChecker",ftString,pdInput,18,m_MpsChecker);
m_StoredProc->Parameters->CreateParameter("@MpsCheckDate",ftString,pdInput,10,m_MpsCheckDate);
m_StoredProc->Parameters->CreateParameter("@MpsState",ftInteger,pdInput,1,m_MpsState);
m_StoredProc->Parameters->CreateParameter("@MpsSysDate",ftString,pdOutput,30,m_MpsSysDate);
m_StoredProc->ExecProc();
m_MpsSysDate=m_StoredProc->Parameters->ParamValues["@MpsSysDate"];
m_StoredProc->Close();
}
m_StoredProc->Close();
TsdMps *p=new TsdMps();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->MpsGoods+p->MpsRDate);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->MpsGoods+p->MpsRDate,this->b_MpsGoods+this->b_MpsRDate);
}
}
//---------------------------------------------------------------------------
void TsdMps::Check(int IsCheck)
{
if(this->Count>0)
{
try
{
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdMps_Check";
m_StoredProc->Parameters->Clear();
if(IsCheck==1)
{
MpsCheck=1;
m_MpsCheckDate=g_sdCurDate;
m_MpsChecker=g_sdUserCode;
m_StoredProc->Parameters->CreateParameter("@W_MpsGoods",ftString,pdInput,18,b_MpsGoods);
m_StoredProc->Parameters->CreateParameter("@MpsRDate",ftString,pdInput,10,m_MpsRDate);
m_StoredProc->Parameters->CreateParameter("@MpsCheck",ftInteger,pdInput,1,m_MpsCheck);
m_StoredProc->Parameters->CreateParameter("@MpsChecker",ftString,pdInput,18,m_MpsChecker);
m_StoredProc->Parameters->CreateParameter("@MpsCheckDate",ftString,pdInput,10,m_MpsCheckDate);
m_StoredProc->ExecProc();
}
else
{
MpsCheck=0;
m_MpsChecker="";
m_MpsCheckDate="";
m_StoredProc->Parameters->CreateParameter("@W_MpsGoods",ftString,pdInput,18,b_MpsGoods);
m_StoredProc->Parameters->CreateParameter("@MpsRDate",ftString,pdInput,10,m_MpsRDate);
m_StoredProc->Parameters->CreateParameter("@MpsCheck",ftInteger,pdInput,1,m_MpsCheck);
m_StoredProc->Parameters->CreateParameter("@MpsChecker",ftString,pdInput,18,m_MpsChecker);
m_StoredProc->Parameters->CreateParameter("@MpsCheckDate",ftString,pdInput,10,m_MpsCheckDate);
m_StoredProc->ExecProc();
}
TsdMps *p=(TsdMps*)Records(CurRecNo);
p->Assign(this);
}
catch(Exception &e)
{
m_MpsCheck=b_MpsCheck;
m_MpsChecker=b_MpsChecker;
m_MpsCheckDate=b_MpsCheckDate;
throw Exception(e.Message);
}
}
}
//---------------------------------------------------------------------------
void TsdMps::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(m_MpsGoods.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdMps_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_MpsGoods",ftString,pdInput,18,b_MpsGoods);
m_StoredProc->Parameters->CreateParameter("@W_MpsRDate",ftString,pdInput,10,b_MpsRDate);
m_StoredProc->ExecProc();
m_StoredProc->Close();
DeleteRecord(this->b_MpsGoods+this->b_MpsRDate);
}
//---------------------------------------------------------------------------
void TsdMps::Assign(TsdMps *p)
{
this->SetActionID(p->CurStatus);
this->m_MpsGoods=p->m_MpsGoods;
this->m_MpsRDate=p->m_MpsRDate;
this->m_MpsRQty=p->m_MpsRQty;
this->m_MpsGQty=p->m_MpsGQty;
this->m_MpsDate=p->m_MpsDate;
this->m_MpsPlanner=p->m_MpsPlanner;
this->m_MpsCheck=p->m_MpsCheck;
this->m_MpsChecker=p->m_MpsChecker;
this->m_MpsCheckDate=p->m_MpsCheckDate;
this->m_MpsState=p->m_MpsState;
this->m_MpsSysDate=p->m_MpsSysDate;
this->BackupValue();
}
//---------------------------------------------------------------------------
void TsdMps::AssignValue()
{
TsdMps *p=(TsdMps *)Records(CurRecNo);
Assign(p);
}
//---------------------------------------------------------------------------
int TsdMps::Query()
{
AnsiString m_SqlStr;
m_SqlStr=QueryString;
if(FilterString.IsEmpty()==false)
m_SqlStr=m_SqlStr+" where "+FilterString;
if(OrderString.IsEmpty()==false)
m_SqlStr=m_SqlStr+" Order by "+OrderString;
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
ClearRecord();
if(m_Query->RecordCount>0)
{
m_Query->First();
while(!m_Query->Eof)
{
BatchLetValue();
TsdMps *p=new TsdMps();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->MpsGoods+p->m_MpsRDate);
m_Query->Next();
}
MoveFirst();
}
m_Query->Close();
return Count;
}
//---------------------------------------------------------------------------
bool TsdMps::Find(AnsiString WhereStr)
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空");
m_SqlStr="select * from sdMps where "+WhereStr;
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
if(m_Query->RecordCount!=1)
{
m_Query->Close();
return false;
}
else
{
BatchLetValue();
m_Query->Close();
return true;
}
}
//---------------------------------------------------------------------------
//*********************************
// ClassName:TsdMir //
// Description:独立需求计划 //
// Created on:20001/01/03 //
//*********************************
void __fastcall TsdMir:: SetMirGoods(AnsiString value)
{
if(value.IsEmpty()==true)
throw Exception("物料编码不能为空!");
if(value != m_MirGoods)
{
m_Query->Close();
m_Query->SQL->Clear();
AnsiString m_SqlStr="select GoodsCode from sdGoods where GoodsCode='"+value+"'";
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
if(m_Query->RecordCount <= 0)
{
m_Query->Close();
throw Exception("物料编码'"+value+"'未定义!");
}
m_Query->Close();
}
m_MirGoods=value;
}
//---------------------------------------------------------------------------
void __fastcall TsdMir:: SetMirRDate(AnsiString value)
{
if(value.IsEmpty()==true)
throw Exception("需求日期不能为空");
if(value != m_MirRDate)
{
AnsiString m_SqlStr="select MirRDate from sdMir where MirGoods='"+m_MirGoods+"' and ";
m_SqlStr+=" MirRDate='"+value+"'";
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
if(m_Query->RecordCount > 0)
{
m_Query->Close();
throw Exception("该物料编码在日期'"+value+"'的独立需求已定义");
}
m_Query->Close();
}
m_MirRDate=Validate(value);
}
void __fastcall TsdMir:: SetMirRQty(double value)
{
if(value < 0)
throw Exception("需求数量不能小于零");
m_MirRQty=value;
}
void __fastcall TsdMir:: SetMirGQty(double value)
{
if(value < 0)
throw Exception("生成数量不能小于零");
m_MirGQty=value;
}
void __fastcall TsdMir:: SetMirDate(AnsiString value)
{
if(value.IsEmpty()==true)
throw Exception("操作日期不能为空");
m_MirDate=Validate(value);
}
void __fastcall TsdMir:: SetMirPlanner(AnsiString value)
{
if(value.IsEmpty()==true)
throw Exception("计划员不能为空");
if(value != m_MirPlanner)
{
AnsiString m_SqlStr="select PlannerCode from sdPlanner where PlannerCode='"+value+"'";
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
if(m_Query->RecordCount <= 0)
{
m_Query->Close();
throw Exception("计划员'"+value+"'未定义");
}
m_Query->Close();
}
m_MirPlanner=value;
}
void __fastcall TsdMir:: SetMirCheck(int value)
{
m_MirCheck=value;
}
void __fastcall TsdMir:: SetMirChecker(AnsiString value)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -