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

📄 cmdoc.cpp

📁 述达erp原代码 述达erp原代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop      
#define _YW_SDERP_DLL
#include "Cmdoc.h"


//---------------------------------------------------------------------------
#pragma package(smart_init)

/////////////////////////////////////////////////////////////////////
/////////成本中心维护 TsdCc implement
/////////////////////////////////////////////////////////////////////

void __fastcall TsdCc::SetCcCode(AnsiString value)
{
    if (value.IsEmpty() )
       throw Exception("成本中心代码不能为空!");
    if(value.Length()>18)
       throw Exception("成本中心代码长度不能大于18");
    if (value!=m_CcCode)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT ccCODE FROM SDcc WHERE ccCODE='" +value+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("成本中心"+value+"'已存在");
      }
      m_Query->Close();
    }
    m_CcCode=value;
}
void __fastcall TsdCc::SetCcName(AnsiString value)
{
  if(value.IsEmpty())
    throw Exception("成本中心名称不能为空");
  if(value.Length()>20)
    throw Exception("成本中心名称长度不能大于20");
    if (value!= m_CcName)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT ccCODE FROM SDcc WHERE CCNAME='" +value+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("成本中心名称"+value+"'已存在");
      }
      m_Query->Close();
    }
   m_CcName=value;
}
void __fastcall TsdCc::SetCcDesc(AnsiString value)
{
  if(value.Length()>40)
    throw Exception("备注长度不能大于40");
  m_CcDesc=value;
}
void __fastcall TsdCc::SetCcGlKm(AnsiString value)
{
    if(!value.IsEmpty())
    {
      if(value.Length()>18)
        throw Exception("科目编码长不能大于18");
      if(m_CcGlKm!=value)
      {
        m_Query->Close();
        m_Query->SQL->Clear();
        m_Query->SQL->Add("select * from sdGlkm where glkmcode='"+value+"' and glkmmx=1");
        m_Query->Open();
        if(m_Query->RecordCount<=0)
        {
          m_Query->Close();
          throw Exception("科目编码不存在或不是明细科目");
        }
        m_Query->Close();
      }
    }
	m_CcGlKm=value;
}
void __fastcall TsdCc::SetCcKmDir(int value)
{
  if(value!=-1&&value!=1)
    throw Exception("科目方向只能取值 1-借方 -1-贷方");
  m_CcKmDir=value;
}
void __fastcall TsdCc::SetCcType(int value)
{
  //备用
	m_CcType=value;
}
void __fastcall TsdCc::SetCcUser(AnsiString value)
{
  if(value.IsEmpty())
    throw Exception("操作员编码不能为空");
  if(value.Length()>18)
    throw Exception("操作员编码长度不能大于18");
  if(value!=m_CcUser)
    {
      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_CcUser=value;
}


void __fastcall TsdCc::SetCcCancel(int value)
{
  if(value!=0&&value!=1)
    throw Exception("取消标志只不能取值0-正常1-取消");
	m_CcCancel=value;
}


void __fastcall TsdCc::SetCcCancelDate(AnsiString value)
{       //change by hcq  date 8.9
  if(m_CcCancel==1)
  {
    if(value.IsEmpty())
      throw Exception("取消日期不能为空");
    m_CcCancelDate=Validate(value);
  }
  else
  {
    if(value.IsEmpty()==false)
      throw Exception("正常状态不能为取消日期赋值");
    m_CcCancelDate="";
  }
}
TsdCc::TsdCc(TDataComm *DC)
:TsdStandard(DC)
{
  try
  {
    EmptyValue(0);
    EmptyValue(1);
    QueryString="SELECT * FROM SDcc";
    FilterString="";
    OrderString="ccCODE";
  }
  catch(Exception &e)
  {
    throw Exception("构造函数出错");
  }
}
TsdCc::TsdCc()
:TsdStandard()
{
  try
  {
    EmptyValue(0);
    EmptyValue(1);
    QueryString="SELECT * FROM SDcc";
    FilterString="";
    OrderString="ccCODE";
  }
  catch(Exception &e)
  {
    throw Exception("构造函数出错");
  }
}

AnsiString TsdCc::GetFieldValue(euCc sdFieldName)
{
    switch(sdFieldName)
    {
    	case fiCcCode:
        	return CcCode;
    	case fiCcName:
        	return CcName;
	    case fiCcDesc:
        	return CcDesc;
	    case fiCcGlKm:
        	return CcGlKm;
	    case fiCcKmDir:
        	return CcKmDir;
	    case fiCcType:
        	return CcType;
	    case fiCcUser:
        	return CcUser;
	    case fiCcCancel:
        	return CcCancel;
	    case fiCcCancelDate:
        	return CcCancelDate;
	    case fiCcSysDate:
        	return CcSysDate;
            default:
                throw Exception("当前未定义可取值");
    }
}

void TsdCc::SetFieldValue(euCc sdFieldName, AnsiString value)
{
    switch(sdFieldName)
    {
	   case fiCcCode:
        	CcCode=value;
            break;
	   case fiCcName:
        	CcName=value;
            break;
	   case fiCcDesc:
        	CcDesc=value;
            break;
	    case fiCcGlKm:
        	CcGlKm=value;
            break;
	    case fiCcKmDir:
        	CcKmDir=value.ToInt();
            break;
	    case fiCcType:
        	CcType=value.ToInt();
            break;
	    case fiCcUser:
        	CcUser=value;
            break;
	    case fiCcCancel:
        	CcCancel=value.ToInt();
            break;
	    case fiCcCancelDate:
        	CcCancelDate=value;
            break;
            default:
              throw Exception("当前字段未定义可赋值");
    }
}

void TsdCc::Update()
{
    if(CurStatus==0||CurStatus==1)
        throw Exception("当前不是编辑状态,不能进行存盘操作!");
    if(m_CcCode.IsEmpty()==true)
        throw Exception("单号不能为空!");
    m_StoredProc->Close();
    if(CurStatus==2||CurStatus==4)
      {
        m_StoredProc->ProcedureName="sdCc_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@CcCode",ftString,pdInput,18,m_CcCode);
        m_StoredProc->Parameters->CreateParameter("@CcName",ftString,pdInput,20,m_CcName);
        m_StoredProc->Parameters->CreateParameter("@CcDesc",ftString,pdInput,40,m_CcDesc);
        m_StoredProc->Parameters->CreateParameter("@CcGlKm",ftString,pdInput,18,m_CcGlKm);
        m_StoredProc->Parameters->CreateParameter("@CcKmDir",ftFloat,pdInput,5,m_CcKmDir);
        m_StoredProc->Parameters->CreateParameter("@CcType",ftInteger,pdInput,1,m_CcType);
        m_StoredProc->Parameters->CreateParameter("@CcUser",ftString,pdInput,18,m_CcUser);
        m_StoredProc->Parameters->CreateParameter("@CcCancel",ftInteger,pdInput,1,m_CcCancel);
        m_StoredProc->Parameters->CreateParameter("@CcCancelDate",ftString,pdInput,10,m_CcCancelDate);
        m_StoredProc->Parameters->CreateParameter("@CcSysDate",ftString,pdOutput,40,m_CcSysDate);

        m_StoredProc->ExecProc();
        m_StoredProc->Close();
        m_CcSysDate=m_StoredProc->Parameters->ParamValues["@CcSysDate"];

   }
  else
    {
        m_StoredProc->ProcedureName="sdCc_Update";
        m_StoredProc->Parameters->Clear();

        m_StoredProc->Parameters->CreateParameter("@W_CcCode",ftString,pdInput,18,b_CcCode);
        m_StoredProc->Parameters->CreateParameter("@W_CcUser",ftString,pdInput,18,b_CcUser);
        m_StoredProc->Parameters->CreateParameter("@CcCode",ftString,pdInput,18,m_CcCode);
        m_StoredProc->Parameters->CreateParameter("@CcName",ftString,pdInput,20,m_CcName);
        m_StoredProc->Parameters->CreateParameter("@CcDesc",ftString,pdInput,40,m_CcDesc);
        m_StoredProc->Parameters->CreateParameter("@CcGlKm",ftString,pdInput,18,m_CcGlKm);
        m_StoredProc->Parameters->CreateParameter("@CcKmDir",ftFloat,pdInput,5,m_CcKmDir);
        m_StoredProc->Parameters->CreateParameter("@CcType",ftInteger,pdInput,1,m_CcType);
        m_StoredProc->Parameters->CreateParameter("@CcUser",ftString,pdInput,18,m_CcUser);
        m_StoredProc->Parameters->CreateParameter("@CcCancel",ftInteger,pdInput,1,m_CcCancel);
        m_StoredProc->Parameters->CreateParameter("@CcCancelDate",ftString,pdInput,10,m_CcCancelDate);
        m_StoredProc->Parameters->CreateParameter("@CcSysDate",ftString,pdOutput,40,m_CcSysDate);

       m_StoredProc->ExecProc();
       m_StoredProc->Close();
       m_CcSysDate=m_StoredProc->Parameters->ParamValues["@CcSysDate"];

   }
  TsdCc *p=new TsdCc();
  if(CurStatus==2)
    {
     SetActionID(1);
     p->Assign(this);
     AddRecord((void *)p,p->CcCode);
     }
  else
    {
     SetActionID(1);
     p->Assign(this);
     ChangeRecord((void *)p,p->CcCode,this->b_CcCode);
    }
}

void TsdCc::Delete()
{
    if(CurStatus!=1)
      throw Exception("当前状态不能进行删除操作!");
    if(m_CcCode.IsEmpty()==true)
      throw Exception("当前没有记录可以删除!");
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdCc_Delete";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@W_CcCode",ftString,pdInput,18,b_CcCode);
    m_StoredProc->Parameters->CreateParameter("@W_CcUser",ftString,pdInput,18,b_CcUser);
    m_StoredProc->ExecProc();
    m_StoredProc->Close();
    DeleteRecord(this->b_CcCode);
}

void TsdCc::BackupValue()
{
    b_CcCode=m_CcCode;
    b_CcName=m_CcName;
    b_CcDesc=m_CcDesc;
    b_CcGlKm=m_CcGlKm;
    b_CcKmDir=m_CcKmDir;
    b_CcType=m_CcType;
    b_CcUser=m_CcUser;
    b_CcCancel=m_CcCancel;
    b_CcCancelDate=m_CcCancelDate;
    b_CcSysDate=m_CcSysDate;
}


void TsdCc::RestoreValue()
{
    m_CcCode=b_CcCode;
    m_CcName=b_CcName;
    m_CcDesc=b_CcDesc;
    m_CcGlKm=b_CcGlKm;
    m_CcKmDir=b_CcKmDir;
    m_CcType=b_CcType;
    m_CcUser=b_CcUser;
    m_CcCancel=b_CcCancel;
    m_CcCancelDate=b_CcCancelDate;
    m_CcSysDate=b_CcSysDate;
}


void TsdCc::EmptyValue(int Index)
{
   switch(Index)
   {
     case 0:
        m_CcCode="";
        m_CcName="";
        m_CcDesc="";
        m_CcGlKm="";
        m_CcKmDir=0;
        m_CcType=0;
        m_CcUser="";
        m_CcCancel=0;
        m_CcCancelDate="";
        m_CcSysDate="";
        break;
     case 1:
        b_CcCode="";
        b_CcName="";
        b_CcDesc="";
        b_CcGlKm="";
        b_CcKmDir=0;
        b_CcType=0;
        b_CcUser="";
        b_CcCancel=0;
        b_CcCancelDate="";
        b_CcSysDate="";
        break;
    }
}


void TsdCc::BatchLetValue()
{
      m_CcCode=m_Query->FieldValues["CcCode"];
      m_CcName=m_Query->FieldValues["CcName"];
      m_CcDesc=m_Query->FieldValues["CcDesc"];
      m_CcGlKm=m_Query->FieldValues["CcGlKm"];
      m_CcKmDir=m_Query->FieldValues["CcKmDir"];
      m_CcType=m_Query->FieldValues["CcType"];
      m_CcUser=m_Query->FieldValues["CcUser"];
      m_CcCancel=m_Query->FieldValues["CcCancel"];
      m_CcCancelDate=m_Query->FieldValues["CcCancelDate"];
      m_CcSysDate=m_Query->FieldValues["CcSysDate"];
      BackupValue();
}

void TsdCc::Assign(TsdCc *p)
{
    SetActionID(p->CurStatus);
    m_CcCode=p->m_CcCode;
    m_CcName=p->m_CcName;
    m_CcDesc=p->m_CcDesc;
    m_CcGlKm=p->m_CcGlKm;
    m_CcKmDir=p->m_CcKmDir;
    m_CcType=p->m_CcType;
    m_CcUser=p->m_CcUser;
    m_CcCancel=p->m_CcCancel;
    m_CcCancelDate=p->m_CcCancelDate;
    m_CcSysDate=p->m_CcSysDate;
    BackupValue();
}

void TsdCc::AssignValue()
{
    TsdCc *p=(TsdCc *)Records(CurRecNo);
    Assign(p);
}

int TsdCc::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();
      TsdCc *p=new TsdCc();
      SetActionID(1);
      p->Assign(this);
      AddRecord((void *)p,p->CcCode);
      m_Query->Next();
    }
    MoveFirst();
  }
  m_Query->Close();
  return Count;
}

⌨️ 快捷键说明

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