📄 mbomh.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "mBomh.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
TKSBomh *sdBomh;
//---------------------------------------------------------------------------
__fastcall TKSBomh::TKSBomh()
:TKSMidBase()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidHeadValues()
{
//父件编码
ValidBomhGoods();
//计量单位
ValidBomhUnit();
//批量
ValidBomhEoq();
//运行提前期
ValidBomhRlt();
//描述
ValidBomhDesc();
//操作员
ValidBomhUser();
//订货策略
ValidBomhOp();
//计划策略
ValidBomhPp();
//成品率
ValidBomhFpr();
//类型
ValidBomhType();
//生效日期
ValidBomhEdate();
//失效日期
ValidBomhIdate();
//系统日期
ValidBomhSysDate();
//生管员
ValidBomhProducter();
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhGoods() //父件编码
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhUnit() //计量单位
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhEoq() //批量
{
double m_BomhEoq;
m_BomhEoq=GetMasterValue("BomhEoq");
if(m_BomhEoq<0)
throw Exception("批量的数量不能小于零!");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhRlt() //运行提前期
{
double m_BomhRlt;
m_BomhRlt=GetMasterValue("BomhRlt");
if(m_BomhRlt<0)
throw Exception("运行提前期不能小于零!");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhDesc() //描述
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhUser() //操作员
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhOp() //订货策略
{
int m_BomhOp;
m_BomhOp=GetMasterValue("BomhOp");
if(m_BomhOp!=1 && m_BomhOp!=1 && m_BomhOp!=2 && m_BomhOp!=3 && m_BomhOp!=4 && m_BomhOp!=5 && m_BomhOp!=6)
throw Exception("订货策略只能取值(1-无策略,2-订货点策略,3-订货上限策略,\n4-定期订货策略,5-定量订货策略,6-手工订货策略.)");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhPp() //计划策略
{
int m_BomhPp;
m_BomhPp=GetMasterValue("BomhPp");
if(m_BomhPp!=1 && m_BomhPp!=2 && m_BomhPp!=3 && m_BomhPp!=4 && m_BomhPp!=5 && m_BomhPp!=6)
throw Exception("计划方法只能取值(1-MRP,2-MPS,3-订货点,4-预测,5-成套件,6-自定义.)");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhFpr() //成品率
{
double m_BomhFpr;
m_BomhFpr=GetMasterValue("BomhFpr");
if(m_BomhFpr<0 && m_BomhFpr>1)
throw Exception("成品率不能小于零或大于1.");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhType() //类型
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhEdate() //生效日期
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhIdate() //失效日期
{
AnsiString m_BomhIdate;
AnsiString m_BomhEdate;
m_BomhIdate=GetMasterValue("BomhIdate");
m_BomhEdate=GetMasterValue("BomhEdate");
if(m_BomhIdate<=m_BomhEdate)
throw Exception("失效日期不能小于等于生效日期!");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhSysDate() //系统日期
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomhProducter() //生管员
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidItemValues()
{
ValidBomdGoods();
ValidBomdPgoods();
ValidBomdSn();
ValidBomdUnit();
ValidBomdQty();
ValidBomdShl();
ValidBomdType();
ValidBomdPp();
ValidBomdFrom();
ValidBomdOp();
ValidBomdProcess();
ValidBomdCfg();
ValidBomdRepFlg();
ValidBomdEco();
ValidBomdDesc();
ValidBomdLot();
ValidBomdLlc();
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdGoods()
{
AnsiString m_BomhGoods;
AnsiString m_BomdGoods;
AnsiString b_BomdGoods;
m_BomhGoods=GetMasterValue("BomhGoods");
m_BomdGoods=GetDetailValue("BomdGoods");
b_BomdGoods=GetDetailOldValue("BomdGoods");
//if(m_BomdGoods.UpperCase()==m_BomhGoods.UpperCase())
// throw Exception("子件编码不能同父件编码相同!");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdPgoods()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdSn()
{
int m_BomdSn;
m_BomdSn=GetDetailValue("BomdSn");
if(m_BomdSn<=0)
throw Exception("工程物料单子件编码的序号必须为整数且大于零!");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdUnit()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdQty()
{
double m_BomdQty;
m_BomdQty=GetDetailValue("BomdQty");
if(m_BomdQty<=0)
throw Exception("消耗定额不能小于等于零!");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdShl()
{
double m_BomdShl;
m_BomdShl=GetDetailValue("BomdShl");
if(m_BomdShl<0 || m_BomdShl>1)
throw Exception("损耗率不能小于零或大于1.");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdType()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdPp()
{
int m_BomdPp;
m_BomdPp=GetDetailValue("BomdPp");
if(m_BomdPp!=1 && m_BomdPp!=2 && m_BomdPp!=3 && m_BomdPp!=4 && m_BomdPp!=5 && m_BomdPp!=6)
throw Exception("计划方法只能取值(1-MRP,2-MPS,3-订货点,4-预测,5-成套件,6-自定义.)");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdFrom()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdOp()
{
int m_BomdOp;
m_BomdOp=GetDetailValue("BomdOp");
if(m_BomdOp!=1 && m_BomdOp!=1 && m_BomdOp!=2 && m_BomdOp!=3 && m_BomdOp!=4 && m_BomdOp!=5 && m_BomdOp!=6)
throw Exception("订货策略只能取值(1-无策略,2-订货点策略,3-订货上限策略,\n4-定期订货策略,5-定量订货策略,6-手工订货策略.)");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdProcess()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdCfg()
{
int m_BomdCfg;
m_BomdCfg=GetDetailValue("BomdCfg");
if(m_BomdCfg!=1 && m_BomdCfg!=2 && m_BomdCfg!=3)
throw Exception("配置类型只能取值(1-必需件,2-可选件,3-常用件.)");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdRepFlg()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdEco()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdDesc()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdLot()
{
double m_BomdLot;
m_BomdLot=GetDetailValue("BomdLot");
if(m_BomdLot<0)
throw Exception("偏置时间不能小于零!");
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::ValidBomdLlc()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::VerifyBom(AnsiString GoodsCode,TStringList *GoodsList)
{
TADOQuery *p=new TADOQuery(NULL);
int index;
p->Connection=Connection;
GoodsList->Add(GoodsCode);
p->SQL->Clear();
p->SQL->Add("select BomdGoods from sdBomd,sdGoods where BomdGoods=GoodsCode and BomdPGoods='"+GoodsCode+"' and GoodsFrom=2");
p->Open();
p->First();
while(!p->Eof)
{
index=GoodsList->IndexOf(p->FieldValues["BomdGoods"]);
if(index!=-1)
{
p->Close();
delete p;
throw Exception("产品:"+GoodsCode+" 包含有父件:"+GoodsList->Strings[index]+",产品结构表非法!");
}
VerifyBom(p->FieldValues["BomdGoods"],GoodsList);
p->Next();
}
index=GoodsList->IndexOf(GoodsCode);
if(index!=-1)
GoodsList->Delete(index);
p->Close();
delete p;
return;
}
//---------------------------------------------------------------------------
void __fastcall TKSBomh::CmdExec(AnsiString Param)
{
TADOQuery *m_Query=new TADOQuery(NULL);
m_Query->Connection=Connection;
if(Param=="1")
{
TStringList *m_GoodsList=new TStringList;
try
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select bomhGoods from sdBomh");
m_Query->Open();
m_Query->First();
while(!m_Query->Eof)
{
VerifyBom(m_Query->FieldValues["bomhGoods"],m_GoodsList);
m_Query->Next();
}
m_Query->Close();
}
__finally
{
delete m_GoodsList;
}
}
else
{
Query->Close();
Query->SQL->Text="exec sdBom_Calculate_Llc";
Query->ExecSQL();
Query->Close();
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -