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

📄 cmhdl.cpp

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

//---------------------------------------------------------------------------
#pragma package(smart_init)
//====================================================
//         (TsdCd)  成本初始化
//====================================================
TsdCd::TsdCd(TDataComm *DC)
:TsdStandard(DC)
{
   try
   {
      EmptyValue(0);
      EmptyValue(1);
      QueryString="SELECT cdfmonth,cdgoods,cdgoodsname=goodsname,CdpmpcCode=goodspmpcCode,cdBopprice,cdBopqty=stockbopqty,cdbopamt,CdInitFlg FROM Sdcd,sdgoods,sdstock";
      FilterString="";
      OrderString=" cdfmonth,cdgoods";
    }
    catch(...)
    {
       throw Exception("构造函数出错!");
    };
}
//------------------------------------------------------------------------------
TsdCd::TsdCd()
:TsdStandard()
{
   try
   {
      EmptyValue(0);
      EmptyValue(1);
      QueryString="SELECT cdfmonth,cdgoods,cdgoodsname=goodsname,CdpmpcCode=goodspmpcCode,cdBopprice,cdBopqty=stockbopqty,cdbopamt,CdInitFlg FROM Sdcd,sdgoods,sdstock";
      FilterString="";
      OrderString=" cdfmonth,cdgoods";
    }
    catch(...)
    {
       throw Exception("构造函数出错!");
    };
}
//------------------------------------------------------------------------------
void __fastcall TsdCd::SetCdFmonth(AnsiString value)
{
    AnsiString s;
    if(value.IsEmpty())
      throw Exception("财务月份不能为空");
    if(value!=m_CdFmonth)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select fcmonth from sdfc where fcmonth='"+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 fcmonth from sdfc where fccurrent=1");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("未定义当前财务月份");
      }
      s=m_Query->FieldValues["FcMonth"];
      if(value<s)
      {
        m_Query->Close();
        throw Exception("财务月份不能小于当前月份");
      }
      m_Query->Close();
    }
    m_CdFmonth =   value;
}
void __fastcall TsdCd::SetCdGoods(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("物料编码不能为空");
    if(value.Length()>18)
      throw Exception("物料编码长度不能大于18");
    if(value!=m_CdGoods)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select goodsName from sdgoods where goodsCode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("物料编码 "+value+"未定义");
      }
      m_Query->Close();
    }
    m_CdGoods=value;
}
void __fastcall TsdCd::SetCdBopPrice(double value)
{
    if(value<0)
      throw Exception("期初单价不能小于零");
    m_CdBopPrice=value;
}
void __fastcall TsdCd::SetCdBopAmt(double value)
{
    if(value<0)
      throw Exception("期初金额不能小于零");
    m_CdBopAmt=value;
}
void __fastcall TsdCd::SetCdInitFlg(int value)
{
    if(value!=0 && value!=1)
      throw Exception("初始化标志只能取值0-未初始化1-已初始化");
    m_CdInitFlg=value;
}

void  TsdCd::SetFieldValue(euCd sdFieldName, AnsiString value)
{
    switch(sdFieldName)
    {
      case fiCdFmonth:
         CdFmonth=value;
         break;
      case fiCdGoods:
         CdGoods=value;
        break;
      case fiCdBopPrice:
        CdBopPrice=value.ToDouble();
        break;
      case fiCdBopAmt:
        CdBopAmt=value.ToDouble();
        break;
      case fiCdInitFlg:
        CdInitFlg=value.ToInt();
        break;
    default:
         throw Exception("当前字段未定义可赋值");
    }
}
//------------------------------------------------------------------------------
AnsiString TsdCd::GetFieldValue(euCd sdFieldName)
{
    switch(sdFieldName)
    {
      case fiCdFmonth:
        return CdFmonth;
      case fiCdGoods:
        return CdGoods;
      case fiCdGoodsName:
        return CdGoodsName;
      case fiCdPmpcCode:
        return CdPmpcCode;
      case fiCdBopPrice:
        return CdBopPrice;
      case fiCdBopQty:
        return CdBopQty;
      case fiCdBopAmt:
        return CdBopAmt;
      case fiCdInitFlg:
        return CdInitFlg;
      default:
           throw Exception("当前未定义可取值");
    }
}
//------------------------------------------------------------------------------
void TsdCd::BackupValue()
{
    b_CdFmonth=m_CdFmonth;
    b_CdGoods=m_CdGoods;
    b_CdGoodsName=m_CdGoodsName;
    b_CdPmpcCode=m_CdPmpcCode;
    b_CdBopPrice=m_CdBopPrice;
    b_CdBopQty=m_CdBopQty;
    b_CdBopAmt=m_CdBopAmt;
    b_CdInitFlg=m_CdInitFlg;
}
//------------------------------------------------------------------------------
void TsdCd::RestoreValue()
{
    m_CdFmonth=b_CdFmonth;
    m_CdGoods=b_CdGoods;
    m_CdGoodsName=b_CdGoodsName;
    m_CdPmpcCode=b_CdPmpcCode;
    m_CdBopPrice=b_CdBopPrice;
    m_CdBopQty=b_CdBopQty;
    m_CdBopAmt=b_CdBopAmt;
    m_CdInitFlg=b_CdInitFlg;
}
//------------------------------------------------------------------------------
void TsdCd::EmptyValue(int Index)
{
    switch (Index)
    {
      case 0:
          m_CdFmonth="";
          m_CdGoods="";
          m_CdGoodsName="";
          m_CdPmpcCode="";
          m_CdBopPrice=0;
          m_CdBopQty=0;
          m_CdBopAmt=0;
          m_CdInitFlg=0;
        break;
      case 1:
          b_CdFmonth="";
          b_CdGoods="";
          b_CdGoodsName="";
          b_CdPmpcCode="";
          b_CdBopPrice=0;
          b_CdBopQty=0;
          b_CdBopAmt=0;
          b_CdInitFlg=0;
        }
}
//------------------------------------------------------------------------------
void TsdCd::BatchLetValue()
{
    m_CdFmonth=m_Query->FieldValues["Cdfmonth"];
    m_CdGoods=m_Query->FieldValues["CdGoods"];
    m_CdGoodsName=m_Query->FieldValues["CdGoodsName"];
    m_CdPmpcCode=m_Query->FieldValues["cdpmpcCode"];
    m_CdBopPrice=m_Query->FieldValues["CdBopPrice"];
    m_CdBopQty=m_Query->FieldValues["CdBopQty"];
    m_CdBopAmt=m_Query->FieldValues["CdBopAmt"];
    m_CdInitFlg=m_Query->FieldValues["cdInitFlg"];
    BackupValue();
}
//------------------------------------------------------------------------------
void TsdCd::Assign(TsdCd *p)
{
    this->SetActionID(p->CurStatus);
    this->m_CdFmonth=p->m_CdFmonth;
    this->m_CdGoods=p->m_CdGoods;
    this->m_CdGoodsName=p->m_CdGoodsName;
    this->m_CdPmpcCode=p->m_CdPmpcCode;
    this->m_CdBopPrice=p->m_CdBopPrice;
    this->m_CdBopQty=p->CdBopQty;
    this->m_CdBopAmt=p->m_CdBopAmt;
    this->m_CdInitFlg=p->m_CdInitFlg;
    this->BackupValue();
}
//------------------------------------------------------------------------------
void TsdCd:: AssignValue()
{
    TsdCd *p=(TsdCd *)Records(CurRecNo);
    Assign(p);
}
//------------------------------------------------------------------------------
int TsdCd::Query()
{
    AnsiString m_SqlStr;
    m_SqlStr=QueryString;
    if(FilterString.IsEmpty()==false)
        m_SqlStr=m_SqlStr+" where goodscode=Stockgoodscode and goodscode=cdgoods and "+FilterString;
    else
        m_SqlStr=m_SqlStr+" where goodscode=stockgoodscode and cdgoods=goodscode ";
    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();
            TsdCd *p=new TsdCd();
            SetActionID(1);
            p->Assign(this);
            AddRecord((void *)p,p->CdGoods);
            m_Query->Next();
          }
          MoveFirst();
    }
    m_Query->Close();
    return Count;
}
//------------------------------------------------------------------------------
bool TsdCd::Find(AnsiString WhereStr)
{
    AnsiString m_SqlStr;
    if(WhereStr.IsEmpty()==true)
        throw Exception("查找表达式不能为空");
    m_SqlStr="SELECT * FROM sdCd 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;
    }
}
//------------------------------------------------------------------------------
void TsdCd::Update()
{
    if(CurStatus==0||CurStatus==1)
        throw Exception("当前不是编辑状态,不能进行存盘操作!");
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdCd_InitInv";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@CdFmonth",ftString,pdInput,6,m_CdFmonth);
    m_StoredProc->Parameters->CreateParameter("@CdGoods",ftString,pdInput,18,m_CdGoods);
    m_StoredProc->Parameters->CreateParameter("@CdBopPrice",ftFloat,pdInput,12,m_CdBopPrice);
    m_StoredProc->Parameters->CreateParameter("@CdBopAmt",ftFloat,pdInput,12,m_CdBopAmt);
    m_StoredProc->ExecProc();
    m_StoredProc->Close();

    TsdCd *p=new TsdCd();
    SetActionID(1);
    p->Assign(this);
    ChangeRecord((void *)p,p->CdGoods,this->b_CdGoods);
}
//------------------------------------------------------------------------------
void TsdCd::Delete()
{
    //没有删除功能
}

TsdCd::~TsdCd()
{
    try
    {
    }
    catch(...)
    {
       throw Exception("析构函数出错!");
    }
}
//=============================================
//		(TsdAdjCoh)入库调整单
//=============================================
void __fastcall TsdAdjCoh:: SetAdjCohCode(AnsiString value)
{
    if(value.IsEmpty())
        throw Exception("调整单号不能为空");
    if(value.Length()>18)
        throw Exception("调整单号长度不能超过18");
    if(value!=m_AdjCohCode)
    {
        m_Query->Close();
        m_Query->SQL->Clear();
        m_Query->SQL->Add("SELECT AdjcohCODE FROM SDadjcoh WHERE AdjcohCODE='" +value+"'");
        m_Query->Open();
        if(m_Query->RecordCount>0)
        {
            m_Query->Close();
            throw Exception("调整单号'"+value+"'未定义");
        }
        m_Query->Close();
    }
    m_AdjCohCode=value;
}
void __fastcall TsdAdjCoh:: SetAdjCohDate(AnsiString value)
{
    if (value.IsEmpty())
      throw Exception("调整日期不能为空");
    if(value.Length()>10)
      throw Exception("调整日期长度不能超过10");
    m_AdjCohDate=Validate(value);
}
void __fastcall TsdAdjCoh:: SetAdjCohFmonth(AnsiString value)
{
    if(value.IsEmpty()==true)
      throw Exception("财务月份不能为空");
    if(value.Length()>8)
      throw Exception("财务月份长度不能超过8");
    if (value!=m_AdjCohFmonth)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT Fcmonth FROM sdFc Where Fcmonth='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("财务月份 "+value+" 未定义");
      }
     m_Query->Close();
    }
    m_AdjCohFmonth=value;
}
void __fastcall TsdAdjCoh:: SetAdjCohPosType(AnsiString value)
{
    if (value.IsEmpty())
      throw Exception("收发类型编码不能为空");
    if(value.Length()>18)
      throw Exception("收发类型编码长度不能超过18");
    if (value!=m_AdjCohPosType)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select postypecode from sdpostype where postypecode='"+value+"'");
      m_Query->Open();

⌨️ 快捷键说明

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