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

📄 cmdoc.cpp

📁 科思ERP部分源码及控件
💻 CPP
📖 第 1 页 / 共 4 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop      
#define _YW_SDERP_DLL
#include "Cmdoc.h"


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

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

void __fastcall TKSCc::SetCcCode(AnsiString value)
{
    if (value.IsEmpty() )
       throw Exception("成本中心代码不能为空!");
    if(value.Length()>18)
       throw Exception("成本中心代码长度不能大于18");
    if (value!=l_CcCode)
    {
      l_Query->Close();
      l_Query->SQL->Clear();
      l_Query->SQL->Add("SELECT ccCODE FROM SDcc WHERE ccCODE='" +value+"'");
      l_Query->Open();
      if(l_Query->RecordCount>0)
      {
        l_Query->Close();
        throw Exception("成本中心"+value+"'已存在");
      }
      l_Query->Close();
    }
    l_CcCode=value;
}
void __fastcall TKSCc::SetCcName(AnsiString value)
{
  if(value.IsEmpty())
    throw Exception("成本中心名称不能为空");
  if(value.Length()>20)
    throw Exception("成本中心名称长度不能大于20");
    if (value!= l_CcName)
    {
      l_Query->Close();
      l_Query->SQL->Clear();
      l_Query->SQL->Add("SELECT ccCODE FROM SDcc WHERE CCNAME='" +value+"'");
      l_Query->Open();
      if(l_Query->RecordCount>0)
      {
        l_Query->Close();
        throw Exception("成本中心名称"+value+"'已存在");
      }
      l_Query->Close();
    }
   l_CcName=value;
}
void __fastcall TKSCc::SetCcDesc(AnsiString value)
{
  if(value.Length()>40)
    throw Exception("备注长度不能大于40");
  l_CcDesc=value;
}
void __fastcall TKSCc::SetCcGlKm(AnsiString value)
{
    if(!value.IsEmpty())
    {
      if(value.Length()>18)
        throw Exception("科目编码长不能大于18");
      if(l_CcGlKm!=value)
      {
        l_Query->Close();
        l_Query->SQL->Clear();
        l_Query->SQL->Add("select * from sdGlkm where glkmcode='"+value+"' and glkmmx=1");
        l_Query->Open();
        if(l_Query->RecordCount<=0)
        {
          l_Query->Close();
          throw Exception("科目编码不存在或不是明细科目");
        }
        l_Query->Close();
      }
    }
	l_CcGlKm=value;
}
void __fastcall TKSCc::SetCcKmDir(int value)
{
  if(value!=-1&&value!=1)
    throw Exception("科目方向只能取值 1-借方 -1-贷方");
  l_CcKmDir=value;
}
void __fastcall TKSCc::SetCcType(int value)
{
  //备用
	l_CcType=value;
}
void __fastcall TKSCc::SetCcUser(AnsiString value)
{
  if(value.IsEmpty())
    throw Exception("操作员编码不能为空");
  if(value.Length()>18)
    throw Exception("操作员编码长度不能大于18");
  if(value!=l_CcUser)
    {
      l_Query->Close();
      l_Query->SQL->Clear();
      l_Query->SQL->Add("SELECT UserCODE FROM SDUser WHERE UserCODE='" +value+"'");
      l_Query->Open();
      if(l_Query->RecordCount<=0)
      {
        l_Query->Close();
        throw Exception("操作员"+value+"'未定义");
      }
      l_Query->Close();
    }
    l_CcUser=value;
}


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


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

AnsiString TKSCc::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 TKSCc::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 TKSCc::Update()
{
    if(CurStatus==0||CurStatus==1)
        throw Exception("当前不是编辑状态,不能进行存盘操作!");
    if(l_CcCode.IsEmpty()==true)
        throw Exception("单号不能为空!");
    l_StoredProc->Close();
    if(CurStatus==2||CurStatus==4)
      {
        l_StoredProc->ProcedureName="sdCc_Insert";
        l_StoredProc->Parameters->Clear();
        l_StoredProc->Parameters->CreateParameter("@CcCode",ftString,pdInput,18,l_CcCode);
        l_StoredProc->Parameters->CreateParameter("@CcName",ftString,pdInput,20,l_CcName);
        l_StoredProc->Parameters->CreateParameter("@CcDesc",ftString,pdInput,40,l_CcDesc);
        l_StoredProc->Parameters->CreateParameter("@CcGlKm",ftString,pdInput,18,l_CcGlKm);
        l_StoredProc->Parameters->CreateParameter("@CcKmDir",ftFloat,pdInput,5,l_CcKmDir);
        l_StoredProc->Parameters->CreateParameter("@CcType",ftInteger,pdInput,1,l_CcType);
        l_StoredProc->Parameters->CreateParameter("@CcUser",ftString,pdInput,18,l_CcUser);
        l_StoredProc->Parameters->CreateParameter("@CcCancel",ftInteger,pdInput,1,l_CcCancel);
        l_StoredProc->Parameters->CreateParameter("@CcCancelDate",ftString,pdInput,10,l_CcCancelDate);
        l_StoredProc->Parameters->CreateParameter("@CcSysDate",ftString,pdOutput,40,l_CcSysDate);

        l_StoredProc->ExecProc();
        l_StoredProc->Close();
        l_CcSysDate=l_StoredProc->Parameters->ParamValues["@CcSysDate"];

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

        l_StoredProc->Parameters->CreateParameter("@W_CcCode",ftString,pdInput,18,b_CcCode);
        l_StoredProc->Parameters->CreateParameter("@W_CcUser",ftString,pdInput,18,b_CcUser);
        l_StoredProc->Parameters->CreateParameter("@CcCode",ftString,pdInput,18,l_CcCode);
        l_StoredProc->Parameters->CreateParameter("@CcName",ftString,pdInput,20,l_CcName);
        l_StoredProc->Parameters->CreateParameter("@CcDesc",ftString,pdInput,40,l_CcDesc);
        l_StoredProc->Parameters->CreateParameter("@CcGlKm",ftString,pdInput,18,l_CcGlKm);
        l_StoredProc->Parameters->CreateParameter("@CcKmDir",ftFloat,pdInput,5,l_CcKmDir);
        l_StoredProc->Parameters->CreateParameter("@CcType",ftInteger,pdInput,1,l_CcType);
        l_StoredProc->Parameters->CreateParameter("@CcUser",ftString,pdInput,18,l_CcUser);
        l_StoredProc->Parameters->CreateParameter("@CcCancel",ftInteger,pdInput,1,l_CcCancel);
        l_StoredProc->Parameters->CreateParameter("@CcCancelDate",ftString,pdInput,10,l_CcCancelDate);
        l_StoredProc->Parameters->CreateParameter("@CcSysDate",ftString,pdOutput,40,l_CcSysDate);

       l_StoredProc->ExecProc();
       l_StoredProc->Close();
       l_CcSysDate=l_StoredProc->Parameters->ParamValues["@CcSysDate"];

   }
  TKSCc *p=new TKSCc();
  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 TKSCc::Delete()
{
    if(CurStatus!=1)
      throw Exception("当前状态不能进行删除操作!");
    if(l_CcCode.IsEmpty()==true)
      throw Exception("当前没有记录可以删除!");
    l_StoredProc->Close();
    l_StoredProc->ProcedureName="sdCc_Delete";
    l_StoredProc->Parameters->Clear();
    l_StoredProc->Parameters->CreateParameter("@W_CcCode",ftString,pdInput,18,b_CcCode);
    l_StoredProc->Parameters->CreateParameter("@W_CcUser",ftString,pdInput,18,b_CcUser);
    l_StoredProc->ExecProc();
    l_StoredProc->Close();
    DeleteRecord(this->b_CcCode);
}

void TKSCc::BackupValue()
{
    b_CcCode=l_CcCode;
    b_CcName=l_CcName;
    b_CcDesc=l_CcDesc;
    b_CcGlKm=l_CcGlKm;
    b_CcKmDir=l_CcKmDir;
    b_CcType=l_CcType;
    b_CcUser=l_CcUser;
    b_CcCancel=l_CcCancel;
    b_CcCancelDate=l_CcCancelDate;
    b_CcSysDate=l_CcSysDate;
}


void TKSCc::RestoreValue()
{
    l_CcCode=b_CcCode;
    l_CcName=b_CcName;
    l_CcDesc=b_CcDesc;
    l_CcGlKm=b_CcGlKm;
    l_CcKmDir=b_CcKmDir;
    l_CcType=b_CcType;
    l_CcUser=b_CcUser;
    l_CcCancel=b_CcCancel;
    l_CcCancelDate=b_CcCancelDate;
    l_CcSysDate=b_CcSysDate;
}


void TKSCc::EmptyValue(int Index)
{
   switch(Index)
   {
     case 0:
        l_CcCode="";
        l_CcName="";
        l_CcDesc="";
        l_CcGlKm="";
        l_CcKmDir=0;
        l_CcType=0;
        l_CcUser="";
        l_CcCancel=0;
        l_CcCancelDate="";
        l_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 TKSCc::BatchLetValue()
{
      l_CcCode=l_Query->FieldValues["CcCode"];
      l_CcName=l_Query->FieldValues["CcName"];
      l_CcDesc=l_Query->FieldValues["CcDesc"];
      l_CcGlKm=l_Query->FieldValues["CcGlKm"];
      l_CcKmDir=l_Query->FieldValues["CcKmDir"];
      l_CcType=l_Query->FieldValues["CcType"];
      l_CcUser=l_Query->FieldValues["CcUser"];
      l_CcCancel=l_Query->FieldValues["CcCancel"];
      l_CcCancelDate=l_Query->FieldValues["CcCancelDate"];
      l_CcSysDate=l_Query->FieldValues["CcSysDate"];
      BackupValue();
}

void TKSCc::Assign(TKSCc *p)
{
    SetActionID(p->CurStatus);
    l_CcCode=p->l_CcCode;
    l_CcName=p->l_CcName;
    l_CcDesc=p->l_CcDesc;
    l_CcGlKm=p->l_CcGlKm;
    l_CcKmDir=p->l_CcKmDir;
    l_CcType=p->l_CcType;
    l_CcUser=p->l_CcUser;
    l_CcCancel=p->l_CcCancel;
    l_CcCancelDate=p->l_CcCancelDate;
    l_CcSysDate=p->l_CcSysDate;
    BackupValue();
}

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

int TKSCc::Query()
{
  AnsiString l_SqlStr;

  l_SqlStr=QueryString;
  if(FilterString.IsEmpty()==false)
    l_SqlStr=l_SqlStr+" where "+FilterString;
  if(OrderString.IsEmpty()==false)
    l_SqlStr=l_SqlStr+" Order by "+OrderString;
  l_Query->Close();
  l_Query->SQL->Clear();
  l_Query->SQL->Add(l_SqlStr);
  l_Query->Open();
  ClearRecord();
  if(l_Query->RecordCount>0)
  {
    l_Query->First();
    while(!l_Query->Eof)
    {
      BatchLetValue();
      TKSCc *p=new TKSCc();
      SetActionID(1);
      p->Assign(this);
      AddRecord((void *)p,p->CcCode);
      l_Query->Next();
    }
    MoveFirst();
  }
  l_Query->Close();
  return Count;
}

⌨️ 快捷键说明

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