📄 bmhdl.cpp
字号:
//---------------------------------------------------------------------------
AnsiString __fastcall TsdBomh::GetItemBookMark()
{
return m_sdBomd->BookMark;
}
//---------------------------------------------------------------------------
TsdBomh::~TsdBomh()
{
try{
for(int i=0;i<this->Count;i++)
{
this->LocateByIndex(i);
this->AssignValue();
delete m_sdBomd;
}
}
catch(...)
{
throw Exception("析构函数出错!");
}
}
//---------------------------------------------------------------------------
//***************************************
// ClassName:(TsdBomd) //
// Description:物料单明细的维护 //
// Created On:2000/06/01 //
//***************************************
TsdBomd::TsdBomd(TDataComm *DC)
:TsdDetail(DC)
{
try
{
QueryString="select * from sdBomd";
FilterString="";
OrderString=" BomdPgoods,BomdSn";
EmptyValue(0);
EmptyValue(1);
}
catch(...)
{
throw Exception("构造函数出错!");
}
}
//---------------------------------------------------------------------------
TsdBomd::TsdBomd()
:TsdDetail()
{
try
{
QueryString="select * from sdBomd";
FilterString="";
OrderString=" BomdPgoods,BomdSn";
EmptyValue(0);
EmptyValue(1);
}
catch(...)
{
throw Exception("构造函数出错!");
}
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdGoods(AnsiString value)
{
if(value.IsEmpty())
throw Exception("工程物料单的子件编码不能为空!");
if(value.Length()>18)
throw Exception("工程物料单的子件编码的长度不能大于18!");
if(value.UpperCase()==sdParent->GetFieldValue(fiBomhGoods).UpperCase())
throw Exception("子件编码不能重用父件编码");
if(value != m_BomdGoods)
{
if(this->FindKey(value))
throw Exception("工程物料单的子件编码:'"+value+"'已存在!");
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select GoodsUnitCode,GoodsType,GoodsFrom from sdGoods Where GoodsType<>1 and GoodsCode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_BomdUnit=m_Query->FieldValues["GoodsUnitCode"];
m_BomdType=m_Query->FieldValues["GoodsType"];
m_BomdFrom=m_Query->FieldValues["GoodsFrom"];
m_Query->Close();
}
else
{
m_Query->Close();
throw Exception("该货物编码:'"+value+"'不存在或者不符合条件!");
}
}
m_BomdGoods = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdPgoods(AnsiString value)
{
if(value.IsEmpty())
throw Exception("工程物料单子件编码的父件编码不能为空!");
m_BomdPgoods = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdSn(int value)
{
if(value<=0)
throw Exception("工程物料单子件编码的序号必须为整数且大于零!");
m_BomdSn = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdQty(double value)
{
if(value<=0)
throw Exception("消耗定额不能小于等于零!");
m_BomdQty = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdShl(double value)
{
if(value<0 || value>1)
throw Exception("损耗率不能小于零或大于1.");
m_BomdShl = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdPp(int value)
{
if(value!=1 && value!=2 && value!=3 && value!=4 && value!=5 && value!=6)
throw Exception("计划方法只能取值(1-MRP,2-MPS,3-订货点,4-预测,5-成套件,6-自定义.)");
m_BomdPp = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdOp(int value)
{
if(value!=1 && value!=1 && value!=2 && value!=3 && value!=4 && value!=5 && value!=6)
throw Exception("订货策略只能取值(1-无策略,2-订货点策略,3-订货上限策略,\n4-定期订货策略,5-定量订货策略,6-手工订货策略.)");
m_BomdOp = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdProcess(AnsiString value)
{
if(value.IsEmpty())
throw Exception("工序的代码不能为空!");
if(value.Length()>18)
throw Exception("工序的代码长度不能大于18!");
if(value != m_BomdProcess)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select ProcessCode from sdProcess where ProcessCode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("未定义工序代码:"+value);
}
m_Query->Close();
}
m_BomdProcess = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdCfg(int value)
{
if(value!=1 && value!=2 && value!=3)
throw Exception("配置类型只能取值(1-必需件,2-可选件,3-常用件.)");
m_BomdCfg = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdRepFlg(int value)
{
//非写属性
//0-未被替换,1-已被替换
m_BomdRepFlg = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdLot(double value)
{
if(value<0)
throw Exception("偏置时间不能小于零!");
m_BomdLot = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdBomd::SetBomdDesc(AnsiString value)
{
if(value.Length()>40)
throw Exception("备注长度不能大于40!");
m_BomdDesc = value;
}
//---------------------------------------------------------------------------
AnsiString TsdBomd::GetFieldValue(euBomd sdFieldName)
{
switch(sdFieldName)
{
case fiBomdPgoods:
return BomdPgoods;
case fiBomdGoods:
return BomdGoods;
case fiBomdUnit:
return BomdUnit;
case fiBomdProcess:
return BomdProcess;
case fiBomdType:
return AnsiString(BomdType);
case fiBomdFrom:
return AnsiString(BomdFrom);
case fiBomdSn:
return AnsiString(BomdSn);
case fiBomdQty:
return AnsiString(BomdQty);
case fiBomdShl:
return AnsiString(BomdShl);
case fiBomdPp:
return AnsiString(BomdPp);
case fiBomdOp:
return AnsiString(BomdOp);
case fiBomdCfg:
return AnsiString(BomdCfg);
case fiBomdLlc:
return AnsiString(BomdLlc);
case fiBomdRepFlg:
return AnsiString(BomdRepFlg);
case fiBomdEco:
return BomdEco;
case fiBomdLot:
return AnsiString(BomdLot);
case fiBomdDesc:
return BomdDesc;
default:
throw Exception("当前字段未定义可取值!");
}
}
//----------------------------------------------------------------------------
AnsiString TsdBomd::GetOldFieldValue(euBomd sdFieldName)
{
switch(sdFieldName)
{
case fiBomdPgoods:
return b_BomdPgoods;
case fiBomdGoods:
return b_BomdGoods;
case fiBomdUnit:
return b_BomdUnit;
case fiBomdProcess:
return b_BomdProcess;
case fiBomdType:
return AnsiString(b_BomdType);
case fiBomdFrom:
return AnsiString(b_BomdFrom);
case fiBomdSn:
return AnsiString(b_BomdSn);
case fiBomdQty:
return AnsiString(b_BomdQty);
case fiBomdShl:
return AnsiString(b_BomdShl);
case fiBomdPp:
return AnsiString(b_BomdPp);
case fiBomdOp:
return AnsiString(b_BomdOp);
case fiBomdCfg:
return AnsiString(b_BomdCfg);
case fiBomdLlc:
return AnsiString(b_BomdLlc);
case fiBomdRepFlg:
return AnsiString(b_BomdRepFlg);
case fiBomdEco:
return b_BomdEco;
case fiBomdLot:
return AnsiString(b_BomdLot);
case fiBomdDesc:
return b_BomdDesc;
default:
throw Exception("当前字段未定义可取值!");
}
}
void TsdBomd::SetFieldValue(euBomd sdFieldName, AnsiString value)
{
switch(sdFieldName)
{
case fiBomdPgoods:
BomdPgoods=value;
break;
case fiBomdGoods:
BomdGoods=value;
break;
case fiBomdSn:
BomdSn=value.ToInt();
break;
case fiBomdRepFlg:
BomdRepFlg=value.ToInt();
break;
case fiBomdQty:
BomdQty=value.ToDouble();
break;
case fiBomdShl:
BomdShl=value.ToDouble();
break;
case fiBomdProcess:
BomdProcess=value;
break;
case fiBomdPp:
BomdPp=value.ToInt();
break;
case fiBomdOp:
BomdOp=value.ToInt();
break;
case fiBomdCfg:
BomdCfg=value.ToInt();
break;
case fiBomdLot:
BomdLot=value.ToDouble();
break;
case fiBomdDesc:
BomdDesc=value;
break;
default:
throw Exception("当前字段未定义可赋值!");
}
}
//----------------------------------------------------------------------------
void TsdBomd::BackupValue()
{
b_BomdPgoods=m_BomdPgoods;
b_BomdGoods=m_BomdGoods;
b_BomdUnit=m_BomdUnit;
b_BomdType=m_BomdType;
b_BomdFrom=m_BomdFrom;
b_BomdSn=m_BomdSn;
b_BomdQty=m_BomdQty;
b_BomdShl=m_BomdShl;
b_BomdProcess=m_BomdProcess;
b_BomdPp=m_BomdPp;
b_BomdOp=m_BomdOp;
b_BomdCfg=m_BomdCfg;
b_BomdLlc=m_BomdLlc;
b_BomdRepFlg=m_BomdRepFlg;
b_BomdEco=m_BomdEco;
b_BomdLot=m_BomdLot;
b_BomdDesc=m_BomdDesc;
}
//----------------------------------------------------------------------------
void TsdBomd::RestoreValue()
{
m_BomdPgoods=b_BomdPgoods;
m_BomdGoods=b_BomdGoods;
m_BomdUnit=b_BomdUnit;
m_BomdType=b_BomdType;
m_BomdFrom=b_BomdFrom;
m_BomdSn=b_BomdSn;
m_BomdQty=b_BomdQty;
m_BomdShl=b_BomdShl;
m_BomdProcess=b_BomdProcess;
m_BomdPp=b_BomdPp;
m_BomdOp=b_BomdOp;
m_BomdCfg=b_BomdCfg;
m_BomdLlc=b_BomdLlc;
m_BomdRepFlg=b_BomdRepFlg;
m_BomdEco=b_BomdEco;
m_BomdLot=b_BomdLot;
m_BomdDesc=b_BomdDesc;
}
//----------------------------------------------------------------------------
void TsdBomd::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_BomdPgoods="";
m_BomdGoods="";
m_BomdUnit="";
m_BomdType=0;
m_BomdFrom=0;
m_BomdSn=0;
m_BomdQty=0;
m_BomdShl=0;
m_BomdProcess="";
m_BomdPp=0;
m_BomdOp=0;
m_BomdCfg=0;
m_BomdLlc=0;
m_BomdRepFlg=0;
m_BomdEco="";
m_BomdLot=0;
m_BomdDesc="";
break;
case 1:
b_BomdPgoods="";
b_BomdGoods="";
b_BomdUnit="";
b_BomdType=0;
b_BomdFrom=0;
b_BomdSn=0;
b_BomdQty=0;
b_BomdShl=0;
b_BomdProcess="";
b_BomdPp=0;
b_BomdOp=0;
b_BomdCfg=0;
b_BomdLlc=0;
b_BomdRepFlg=0;
b_BomdEco="";
b_BomdLot=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -