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

📄 bmhdl.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        b_BomdDesc="";
        break;
    }
}
//----------------------------------------------------------------------------
void TsdBomd::BatchLetValue()
{
    m_BomdPgoods=m_Query->FieldValues["BomdPgoods"];
    m_BomdGoods=m_Query->FieldValues["BomdGoods"];
    m_BomdUnit=m_Query->FieldValues["BomdUnit"];
    m_BomdType=m_Query->FieldValues["BomdType"];
    m_BomdFrom=m_Query->FieldValues["BomdFrom"];
    m_BomdSn=m_Query->FieldValues["BomdSn"];
    m_BomdQty=m_Query->FieldValues["BomdQty"];
    m_BomdShl=m_Query->FieldValues["Bomdshl"];
    m_BomdProcess=m_Query->FieldValues["BomdProcess"];
    m_BomdPp=m_Query->FieldValues["BomdPp"];
    m_BomdOp=m_Query->FieldValues["BomdOp"];
    m_BomdCfg=m_Query->FieldValues["BomdCfg"];
    m_BomdLlc=m_Query->FieldValues["BomdLlc"];
    m_BomdRepFlg=m_Query->FieldValues["BomdRepFlg"];
    m_BomdEco=m_Query->FieldValues["BomdEco"];
    m_BomdLot=m_Query->FieldValues["BomdLot"];
    m_BomdDesc=m_Query->FieldValues["BomdDesc"];
    BackupValue();
}
//---------------------------------------------------------------------------
void TsdBomd::Update()
{
    if(CurStatus==0||CurStatus==1)
      throw Exception("当前不是编辑状态,不能进行存盘操作!");
    if(m_BomdSn == 0)
      throw Exception("物料单的序号不能为空!");
    if(m_BomdPgoods.IsEmpty()==true)
      throw Exception("物料单的父件编码不能为空!");
    if(m_BomdGoods.IsEmpty()==true)
      throw Exception("物料单的子件编码不能为空!");
    m_StoredProc->Close();
    if(CurStatus==2||CurStatus==4)
    {
      m_StoredProc->ProcedureName="sdBomd_Insert";
      m_StoredProc->Parameters->Clear();
      m_StoredProc->Parameters->CreateParameter("@BomdSn",ftInteger,pdInput,10,m_BomdSn);
      m_StoredProc->Parameters->CreateParameter("@BomdPgoods",ftString,pdInput,18,m_BomdPgoods);
      m_StoredProc->Parameters->CreateParameter("@BomdGoods",ftString,pdInput,18,m_BomdGoods);
      m_StoredProc->Parameters->CreateParameter("@BomdType",ftInteger,pdInput,1,m_BomdType);
      m_StoredProc->Parameters->CreateParameter("@BomdFrom",ftInteger,pdInput,1,m_BomdFrom);
      m_StoredProc->Parameters->CreateParameter("@BomdUnit",ftString,pdInput,18,m_BomdUnit);
      m_StoredProc->Parameters->CreateParameter("@BomdQty",ftFloat,pdInput,12,m_BomdQty);
      m_StoredProc->Parameters->CreateParameter("@BomdShl",ftFloat,pdInput,5,m_BomdShl);
      m_StoredProc->Parameters->CreateParameter("@BomdProcess",ftString,pdInput,18,m_BomdProcess);
      m_StoredProc->Parameters->CreateParameter("@BomdPp",ftInteger,pdInput,1,m_BomdPp);
      m_StoredProc->Parameters->CreateParameter("@BomdOp",ftInteger,pdInput,1,m_BomdOp);
      m_StoredProc->Parameters->CreateParameter("@BomdCfg",ftInteger,pdInput,1,m_BomdCfg);
      m_StoredProc->Parameters->CreateParameter("@BomdRepFlg",ftInteger,pdInput,1,m_BomdRepFlg);
      m_StoredProc->Parameters->CreateParameter("@BomdLot",ftFloat,pdInput,7,m_BomdLot);
      m_StoredProc->Parameters->CreateParameter("@BomdDesc",ftString,pdInput,40,m_BomdDesc);
      m_StoredProc->ExecProc();
      m_StoredProc->Close();
    }
    else
    {
      m_StoredProc->ProcedureName="sdBomd_Update";
      m_StoredProc->Parameters->Clear();
      m_StoredProc->Parameters->CreateParameter("@W_BomdGoods",ftString,pdInput,18,b_BomdGoods);
      m_StoredProc->Parameters->CreateParameter("@W_BomdPgoods",ftString,pdInput,18,b_BomdPgoods);
      m_StoredProc->Parameters->CreateParameter("@BomdSn",ftInteger,pdInput,10,m_BomdSn);
      m_StoredProc->Parameters->CreateParameter("@BomdGoods",ftString,pdInput,18,m_BomdGoods);
      m_StoredProc->Parameters->CreateParameter("@BomdType",ftInteger,pdInput,1,m_BomdType);
      m_StoredProc->Parameters->CreateParameter("@BomdFrom",ftInteger,pdInput,1,m_BomdFrom);
      m_StoredProc->Parameters->CreateParameter("@BomdUnit",ftString,pdInput,18,m_BomdUnit);
      m_StoredProc->Parameters->CreateParameter("@BomdQty",ftFloat,pdInput,12,m_BomdQty);
      m_StoredProc->Parameters->CreateParameter("@BomdShl",ftFloat,pdInput,5,m_BomdShl);
      m_StoredProc->Parameters->CreateParameter("@BomdProcess",ftString,pdInput,18,m_BomdProcess);
      m_StoredProc->Parameters->CreateParameter("@BomdPp",ftInteger,pdInput,1,m_BomdPp);
      m_StoredProc->Parameters->CreateParameter("@BomdOp",ftInteger,pdInput,1,m_BomdOp);
      m_StoredProc->Parameters->CreateParameter("@BomdRepFlg",ftInteger,pdInput,1,m_BomdRepFlg);
      m_StoredProc->Parameters->CreateParameter("@BomdCfg",ftInteger,pdInput,1,m_BomdCfg);
      m_StoredProc->Parameters->CreateParameter("@BomdLot",ftFloat,pdInput,7,m_BomdLot);
      m_StoredProc->Parameters->CreateParameter("@BomdDesc",ftString,pdInput,40,m_BomdDesc);

      m_StoredProc->ExecProc();
      m_StoredProc->Close();
    }
    TsdBomd *p=new TsdBomd();
    SetActionID(1);
    p->Assign(this);
    ChangeRecord((void *)p,p->BomdGoods,this->b_BomdGoods);
}
//---------------------------------------------------------------------------

void TsdBomd::Delete()
{
    if(CurStatus!=1)
       throw Exception("当前状态不能进行删除操作!");
    if(m_BomdSn == 0)
       throw Exception("当前没有记录可以删除!");
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdBomd_Delete";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@W_BomdGoods",ftString,pdInput,18,b_BomdGoods);
    m_StoredProc->Parameters->CreateParameter("@W_BomdPgoods",ftString,pdInput,18,b_BomdPgoods);
    m_StoredProc->ExecProc();
    m_StoredProc->Close();
    DeleteRecord(this->b_BomdGoods);
}
//---------------------------------------------------------------------------

void TsdBomd::Assign(TsdBomd *p)
{
    this->SetActionID(p->CurStatus);
    this->m_BomdPgoods=p->m_BomdPgoods;
    this->m_BomdGoods=p->m_BomdGoods;
    this->m_BomdUnit=p->m_BomdUnit;
    this->m_BomdType=p->m_BomdType;
    this->m_BomdFrom=p->m_BomdFrom;
    this->m_BomdSn=p->m_BomdSn;
    this->m_BomdQty=p->m_BomdQty;
    this->m_BomdShl=p->m_BomdShl;
    this->m_BomdProcess=p->m_BomdProcess;
    this->m_BomdPp=p->m_BomdPp;
    this->m_BomdOp=p->m_BomdOp;
    this->m_BomdCfg=p->m_BomdCfg;
    this->m_BomdLlc=p->m_BomdLlc;
    this->m_BomdRepFlg=p->m_BomdRepFlg;
    this->m_BomdEco=p->m_BomdEco;
    this->m_BomdLot=p->m_BomdLot;
    this->m_BomdDesc=p->m_BomdDesc;

    if(this->CurStatus==3)
    {
      this->b_BomdPgoods=p->b_BomdPgoods;
      this->b_BomdGoods=p->b_BomdGoods;
      this->b_BomdUnit=p->b_BomdUnit;
      this->b_BomdType=p->b_BomdType;
      this->b_BomdFrom=p->b_BomdFrom;
      this->b_BomdSn=p->b_BomdSn;
      this->b_BomdQty=p->b_BomdQty;
      this->b_BomdShl=p->b_BomdShl;
      this->b_BomdProcess=p->b_BomdProcess;
      this->b_BomdPp=p->b_BomdPp;
      this->b_BomdOp=p->b_BomdOp;
      this->b_BomdCfg=p->b_BomdCfg;
      this->b_BomdLlc=p->b_BomdLlc;
      this->b_BomdRepFlg=p->b_BomdRepFlg;
      this->b_BomdEco=p->b_BomdEco;
      this->b_BomdLot=p->b_BomdLot;
      this->b_BomdDesc=p->b_BomdDesc;
    }
    else
      this->BackupValue();
}
//---------------------------------------------------------------------------
void TsdBomd::AssignValue()
{
    TsdBomd *p=(TsdBomd *)Records(CurRecNo);
    Assign(p);
}
//---------------------------------------------------------------------------

int TsdBomd::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();
        TsdBomd *p=new TsdBomd();
        SetActionID(1);
        p->Assign(this);
        AddRecord((void *)p,p->BomdGoods);
        m_Query->Next();
      }
      MoveFirst();
    }
    m_Query->Close();
    return Count;
}
//---------------------------------------------------------------------------
bool TsdBomd::Find(AnsiString WhereStr)
{
    AnsiString m_SqlStr;
    if(WhereStr.IsEmpty()==true)
      throw Exception("查找的条件表达式不能为空!");
    m_SqlStr="select * from sdBomd 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;
    }
}
//---------------------------------------------------------------------------
TsdBomd::~TsdBomd()
{
    try
    {
    }
    catch(...)
    {
      throw Exception("析构函数出错!");
    }
}
//---------------------------------------------------------------------------

//***************************************
//     ClassName:(TsdPbomh)            //
//     Description:计划物料单头的维护  //
//     Created On:2000/06/01           //
//***************************************
TsdPbomh::TsdPbomh(TDataComm *DC)
:TsdHead(DC)
{
    try
    {
        QueryString="Select * from sdPbomh";
        FilterString="";
        OrderString=" PbomhGoods";
        m_sdPbomd=NULL;
        EmptyValue(0);
        EmptyValue(1);
    }
    catch(...)
    {
        throw Exception("构造函数出错!");
    }
}
//---------------------------------------------------------------------------
TsdPbomh::TsdPbomh()
:TsdHead()
{
    try
    {
        QueryString="Select * from sdPbomh";
        FilterString="";
        OrderString=" PbomhGoods";
        m_sdPbomd=NULL;
        EmptyValue(0);
        EmptyValue(1);
    }
    catch(...)
    {
        throw Exception("构造函数出错!");
    }
}
//---------------------------------------------------------------------------
void __fastcall TsdPbomh::SetPbomhGoods(AnsiString value)
{
    if(value.IsEmpty())
       throw Exception("计划物料清单的父件编码不能为空!");
    if(value != m_PbomhGoods)
    {
       //唯一性
       m_Query->Close();
       m_Query->SQL->Clear();
       m_Query->SQL->Add("select PbomhGoods from sdPbomh Where PbomhGoods='"+value+"'");
       m_Query->Open();
       if(m_Query->RecordCount>0)
       {
          m_Query->Close();
          throw Exception("计划物料清单的父件编码:'"+value+"'已经存在!");
       }
       //合法性
       m_Query->Close();
       m_Query->SQL->Clear();
       m_Query->SQL->Add("select GoodsUnitCode,GoodsType,GoodsEoq from sdGoods Where (GoodsType=1 or GoodsType=2) and GoodsFrom=2 and GoodsCode='"+value+"'");
       m_Query->Open();
       if(m_Query->RecordCount>0)
       {
          m_PbomhType=m_Query->FieldValues["GoodsType"];
          m_PbomhUnit=m_Query->FieldValues["GoodsUnitCode"];
          m_PbomhEoq=m_Query->FieldValues["GoodsEoq"];      //批量
          m_Query->Close();
       }
       else
       {
          m_Query->Close();
          throw Exception("该物料编码:'"+value+"'不存在或者不符合条件!");
       }
    }
    m_PbomhGoods = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdPbomh::SetPbomhRlt(double value)
{
    if(value<0)
      throw Exception("运行提前期不能小于零!");
    m_PbomhRlt = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdPbomh::SetPbomhOp(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_PbomhOp = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdPbomh::SetPbomhPp(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_PbomhPp = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdPbomh::SetPbomhEoq(double value)
{
    if(value<0)
      throw Exception("批量的大小不能够小于零!");
    m_PbomhEoq = value;
}
//---------------------------------------------------------------------------

void __fastcall TsdPbomh::SetPbomhFpr(double value)
{
    if(value<0 && value>1)
      throw Exception("成品率不能小于零或大于100%");
    m_PbomhFpr = value;
}
//---------------------------------------------------------------------------

void __fastcall TsdPbomh::SetPbomhUser(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("操作员代码不能为空!");
    if(value.Length()>18)
      throw Exception("操作员代码长度不能大于18!");
    if(value!=m_PbomhUser)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select UserCode from sdUser where UserCode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
         m_Query->Close();
         throw Exception("未定义操作员:'"+value+"'!");
      }
      m_Query->Close();
    }
    m_PbomhUser = value;
}
//---------------------------------------------------------------------------

void __fastcall TsdPbomh::SetPbomhProducter(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("生管员代码不能为空!");
    if(value.Length()>18)
      throw Exception("生管员代码长度不能大于18!");
    if(value!=m_PbomhProducter)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select ProducterCode from sdProducter where ProducterCode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("未定义生管员:"+value);
      }
      m_Query->Close();
    }
    m_PbomhProducter = value;
}
//---------------------------------------------------------------------------
void __fastcall TsdPbomh::SetPbomhEdate(AnsiString value)
{
    if(value.IsEmpty()==false)
      m_PbomhEdate=Validate(value);
    else
      throw Exception("计划物料清单的生效日期不能为空!");
}
//---------------------------------------------------------------------------

void __fastcall TsdPbomh::SetPbomhIdate(AnsiString value)
{
    if(m_PbomhEdate.IsEmpty())
      throw Exception("生效日期不能为空");
    if(!value.IsEmpty())
    {
      m_PbomhIdate=Validate(value);
      if(m_PbomhIdate<=m_PbomhEdate)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -