⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mbomh.cpp

📁 科思ERP部分源码及控件
💻 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 + -