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

📄 plnhdl.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#define _YW_SDERP_DLL
#include "Plnhdl.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)

//**************************************
//  ClassName:TsdForeCastd            //
//  Description:计划预测单行          //
//  Created on:20001/01/03            //
//**************************************
void __fastcall TsdForeCastd:: SetForeCastdCode(AnsiString value)
{
    m_ForeCastdCode=value;
}
//---------------------------------------------------------------------------
void __fastcall TsdForeCastd:: SetForeCastdLine(int    value)
{
    if(value<0 ||value==0)
       throw Exception("预测需求单的单行号不能小于和等于零!");
    if(value!=m_ForeCastdLine)
       if(this->FindKey(AnsiString(value)))
          throw Exception("预测需求单的行号:'"+AnsiString(value)+"'已经存在!");
    m_ForeCastdLine=value;
}
//---------------------------------------------------------------------------
void __fastcall TsdForeCastd:: SetForeCastdGoods(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("物料编码不能为空");
    if(value!=m_ForeCastdGoods)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select goodsunitcode from sdgoods where goodscode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<1)
      {
        m_Query->Close();
        throw Exception("物料:"+value+"不存在");
      }
      m_Query->Close();
    }
    m_ForeCastdGoods=value;
}
//---------------------------------------------------------------------------
void __fastcall TsdForeCastd:: SetForeCastdQty(double  value)
{
    if(value<=0)
      throw Exception("需求数量不能小于等于零");
    m_ForeCastdQty=value;
}
//---------------------------------------------------------------------------
void __fastcall TsdForeCastd:: SetForeCastdDate(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("需求日期不能为空");
    else
      m_ForeCastdDate=Validate(value);
}
//---------------------------------------------------------------------------
void __fastcall TsdForeCastd:: SetForeCastdDesc(AnsiString value)
{
    m_ForeCastdDesc=value;
}
//---------------------------------------------------------------------------
AnsiString TsdForeCastd::GetFieldValue(euForeCastd sdFieldName)
{
    switch(sdFieldName)
    {
      case fiForeCastdCode:
        return  ForeCastdCode;
      case fiForeCastdLine:
        return  ForeCastdLine;
      case fiForeCastdGoods:
        return  ForeCastdGoods;
      case fiForeCastdQty:
        return  ForeCastdQty;
      case fiForeCastdDate:
        return  ForeCastdDate;
      case fiForeCastdGQty:
        return  ForeCastdGQty;
      case fiForeCastdDesc:
        return  ForeCastdDesc;
    }
      return NULL;
}
//---------------------------------------------------------------------------
AnsiString TsdForeCastd::GetOldFieldValue(euForeCastd sdFieldName)
{
    switch(sdFieldName)
    {
      case fiForeCastdCode:
        return   b_ForeCastdCode;
      case fiForeCastdLine:
        return   b_ForeCastdLine;
      case fiForeCastdGoods:
        return   b_ForeCastdGoods;
      case fiForeCastdQty:
        return   b_ForeCastdQty;
      case fiForeCastdDate:
        return   b_ForeCastdDate;
      case fiForeCastdGQty:
        return   b_ForeCastdGQty;
      case fiForeCastdDesc:
        return   b_ForeCastdDesc;
    }
      return NULL;
}
//---------------------------------------------------------------------------
void TsdForeCastd::SetFieldValue(euForeCastd sdFieldName, AnsiString value)
{
    value=Trim(value);
    switch(sdFieldName)
    {
      case fiForeCastdCode:
        ForeCastdCode=value;
        break;
      case fiForeCastdLine:
        ForeCastdLine=value.ToInt();
        break;
      case fiForeCastdGoods:
        ForeCastdGoods=value;
        break;
      case fiForeCastdQty:
        ForeCastdQty=value.ToDouble();
        break;
      case fiForeCastdDate:
        ForeCastdDate=value;
        break;
      case fiForeCastdDesc:
        ForeCastdDesc=value;
        break;
    }
}
//---------------------------------------------------------------------------
TsdForeCastd::TsdForeCastd(TDataComm *DC)
:TsdDetail(DC)
{
    try
    {
       QueryString="SELECT * FROM sdForeCastd";
       FilterString="";
       OrderString="ForeCastdLine";
    }
    catch(Exception &e)
    {
       ShowMessage(e.Message);
    }
}
//---------------------------------------------------------------------------
TsdForeCastd::TsdForeCastd()
:TsdDetail()
{
    try
    {
       QueryString="SELECT * FROM sdForeCastd";
       FilterString="";
       OrderString="ForeCastdLine";
    }
    catch(Exception &e)
    {
       ShowMessage(e.Message);
    }
}
//---------------------------------------------------------------------------
TsdForeCastd::~TsdForeCastd()
{
    try
    {
    }
    catch(...)
    {
      throw Exception("析构函数出错");
    }
}
//---------------------------------------------------------------------------
void TsdForeCastd::BackupValue()
{
    b_ForeCastdCode=m_ForeCastdCode;
    b_ForeCastdLine=m_ForeCastdLine;
    b_ForeCastdGoods=m_ForeCastdGoods;
    b_ForeCastdQty=m_ForeCastdQty;
    b_ForeCastdDate=m_ForeCastdDate;
    b_ForeCastdGQty=m_ForeCastdGQty;
    b_ForeCastdDesc=m_ForeCastdDesc;
}
//---------------------------------------------------------------------------
void TsdForeCastd::RestoreValue()
{
    m_ForeCastdCode=b_ForeCastdCode;
    m_ForeCastdLine=b_ForeCastdLine;
    m_ForeCastdGoods=b_ForeCastdGoods;
    m_ForeCastdQty=b_ForeCastdQty;
    m_ForeCastdDate=b_ForeCastdDate;
    m_ForeCastdGQty=b_ForeCastdGQty;
    m_ForeCastdDesc=b_ForeCastdDesc;
}
//---------------------------------------------------------------------------
void TsdForeCastd::EmptyValue(int Index)
{
   switch(Index)
   {
     case 0:
      m_ForeCastdCode="";
      m_ForeCastdLine=0;
      m_ForeCastdGoods="";
      m_ForeCastdQty=0;
      m_ForeCastdDate="";
      m_ForeCastdGQty=0;
      m_ForeCastdDesc="";
      break;
     case 1:
      b_ForeCastdCode="";
      b_ForeCastdLine=0;
      b_ForeCastdGoods="";
      b_ForeCastdQty=0;
      b_ForeCastdDate="";
      b_ForeCastdGQty=0;
      b_ForeCastdDesc="";
      break;
    }
}
//---------------------------------------------------------------------------
void TsdForeCastd::BatchLetValue()
{
    m_ForeCastdCode=m_Query->FieldValues["ForeCastdCode"];
    m_ForeCastdLine=m_Query->FieldValues["ForeCastdLine"];
    m_ForeCastdGoods=m_Query->FieldValues["ForeCastdGoods"];
    m_ForeCastdQty=m_Query->FieldValues["ForeCastdQty"];
    m_ForeCastdDate=m_Query->FieldValues["ForeCastdDate"];
    m_ForeCastdGQty=m_Query->FieldValues["ForeCastdGQty"];
    m_ForeCastdDesc=m_Query->FieldValues["ForeCastdDesc"];
    BackupValue();
}
//---------------------------------------------------------------------------
void TsdForeCastd::Update()
{
    if(CurStatus==0 || CurStatus==1)
       throw Exception("当前不是编辑状态,不能进行存盘操作!");
    if(m_ForeCastdLine<=0)
       throw Exception("单据的行号不能小于零!");
    if(m_ForeCastdCode.IsEmpty()==true)
       throw Exception("单据的编号不能为空!");
    m_StoredProc->Close();
    if(CurStatus==2 || CurStatus==4)
    {
        m_StoredProc->ProcedureName="sdForeCastd_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@ForeCastdCode",ftString,pdInput,18,m_ForeCastdCode);
        m_StoredProc->Parameters->CreateParameter("@ForeCastdLine",ftInteger,pdInput,10,m_ForeCastdLine);
        m_StoredProc->Parameters->CreateParameter("@ForeCastdGoods",ftString,pdInput,18,m_ForeCastdGoods);
        m_StoredProc->Parameters->CreateParameter("@ForeCastdQty",ftFloat,pdInput,12,m_ForeCastdQty);
        m_StoredProc->Parameters->CreateParameter("@ForeCastdDate",ftString,pdInput,10,m_ForeCastdDate);
        m_StoredProc->Parameters->CreateParameter("@ForeCastdDesc",ftString,pdInput,40,m_ForeCastdDesc);
        m_StoredProc->ExecProc();
        m_StoredProc->Close();
    }
    else
    {
        m_StoredProc->ProcedureName="sdForeCastd_Update";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@W_ForeCastdCode",ftString,pdInput,18,b_ForeCastdCode);
        m_StoredProc->Parameters->CreateParameter("@W_ForeCastdLine",ftString,pdInput,10,b_ForeCastdLine);
        m_StoredProc->Parameters->CreateParameter("@ForeCastdGoods",ftString,pdInput,18,m_ForeCastdGoods);
        m_StoredProc->Parameters->CreateParameter("@ForeCastdQty",ftFloat,pdInput,12,m_ForeCastdQty);
        m_StoredProc->Parameters->CreateParameter("@ForeCastdDate",ftString,pdInput,10,m_ForeCastdDate);
        m_StoredProc->Parameters->CreateParameter("@ForeCastdDesc",ftString,pdInput,40,m_ForeCastdDesc);
        m_StoredProc->ExecProc();
        m_StoredProc->Close();
    }
    m_StoredProc->Close();
    TsdForeCastd *p=new TsdForeCastd();
    SetActionID(1);
    p->Assign(this);
    ChangeRecord((void *)p,p->ForeCastdLine,this->ForeCastdLine);
}
//---------------------------------------------------------------------------
void TsdForeCastd::Delete()
{
    if(CurStatus!=1)
       throw Exception("当前状态不能进行删除操作!");
    if(m_ForeCastdCode.IsEmpty()==true)
       throw Exception("当前没有记录可以删除!");
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdForeCastd_Delete";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@W_ForeCastdCode",ftString,pdInput,18,b_ForeCastdCode);
    m_StoredProc->Parameters->CreateParameter("@W_ForeCastdLine",ftString,pdInput,10,b_ForeCastdLine);
    m_StoredProc->ExecProc();
    m_StoredProc->Close();
    DeleteRecord(this->b_ForeCastdLine);
}
//---------------------------------------------------------------------------
void TsdForeCastd::Assign(TsdForeCastd *p)
{
    this->SetActionID(p->CurStatus);
    this->m_ForeCastdCode=p->m_ForeCastdCode;
    this->m_ForeCastdLine=p->m_ForeCastdLine;
    this->m_ForeCastdGoods=p->m_ForeCastdGoods;
    this->m_ForeCastdQty=p->m_ForeCastdQty;
    this->m_ForeCastdDate=p->m_ForeCastdDate;
    this->m_ForeCastdGQty=p->m_ForeCastdGQty;
    this->m_ForeCastdDesc=p->m_ForeCastdDesc;
    if(CurStatus==3)
    {
      this->b_ForeCastdCode=p->b_ForeCastdCode;
      this->b_ForeCastdLine=p->b_ForeCastdLine;
      this->b_ForeCastdGoods=p->b_ForeCastdGoods;
      this->b_ForeCastdQty=p->b_ForeCastdQty;
      this->b_ForeCastdDate=p->b_ForeCastdDate;
      this->b_ForeCastdGQty=p->b_ForeCastdGQty;
      this->b_ForeCastdDesc=p->b_ForeCastdDesc;
    }
    this->BackupValue();
}
//---------------------------------------------------------------------------
void TsdForeCastd::AssignValue()
{
    TsdForeCastd *p=(TsdForeCastd *)Records(CurRecNo);
    Assign(p);
}
//---------------------------------------------------------------------------
int TsdForeCastd::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();
          TsdForeCastd *p=new TsdForeCastd();
          SetActionID(1);
          p->Assign(this);
          AddRecord((void *)p,p->ForeCastdLine);
          m_Query->Next();
       }
       MoveFirst();
    }
    m_Query->Close();
    return Count;
}
//---------------------------------------------------------------------------
bool TsdForeCastd::Find(AnsiString WhereStr)
{
    AnsiString m_SqlStr;
    if(WhereStr.IsEmpty()==true)
       throw Exception("查找表达式不能为空!");
    m_SqlStr="select * from sdForeCastd 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:TsdForeCast             //
//  Description:计划预测              //
//  Created on:20001/01/03            //
//**************************************

void __fastcall TsdForeCasth:: SetForeCasthCode(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("预测需求单号不能为空!");
    if(value.Length()>18)

⌨️ 快捷键说明

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