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

📄 emdoc.cpp

📁 科思ERP部分源码及控件
💻 CPP
📖 第 1 页 / 共 4 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#define _YW_SDERP_DLL
#include "Emdoc.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//**************************************
//     TKSFat   设备分类码
//**************************************
//--------------------------------------------------------------
void __fastcall TKSFat:: SetFatCode(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("设备分类码不能为空");
    if(value.Length()>18)
      throw Exception("设备分类码长度不能超过18");
    m_FatCode=value;
}
void __fastcall TKSFat:: SetFatItem(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("本级编码不能为空");
    if(value.Length()>18)
      throw Exception("本级编码长度不能超过18");
    if (value!=m_FatItem)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT * FROM SDFat WHERE  FatCode='"+Trim(m_FatUpperCode)+Trim(value)+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("本级编码已经已存在");
      }
      m_Query->Close();
    }
    m_FatItem=value;
}
void __fastcall TKSFat:: SetFatUpperCode(AnsiString value)
{
    if(value.Length()>18)
       throw Exception("上级设备分类编码长度不能超过18");
    if(value.IsEmpty())
    {
        m_FatUpperCode="";
        m_FatLevel=1;
        return;
    }
    if (value!=m_FatUpperCode)
    {
       int mLevel;
       m_Query->Close();
       m_Query->SQL->Clear();
       m_Query->SQL->Add("select FatLevel from sdFat where FatCode='"+value+"'");
       m_Query->Open();
       if(m_Query->RecordCount>0)
          mLevel = m_Query->FieldValues["FatLevel"];
       else
       {
          m_Query->Close();
          throw Exception("上级编码不存在");
       }
       mLevel = mLevel+1;
       m_FatLevel = mLevel;
       m_FatUpperCode = value;
       m_Query->Close();
    }
}
void __fastcall TKSFat:: SetFatLevel(int    value)
{
    if(value<=0)
       throw Exception("编码级别不能小于等于零");
    m_FatLevel=value;
}
void __fastcall TKSFat:: SetFatName(AnsiString value)
{
    if(value.IsEmpty())
       throw Exception("分类名称不能为空");
    if(value.Length()>20)
       throw Exception("分类名称长度不能超过20");
    if(value!=m_FatName)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT Fatname FROM SDFat WHERE fatname='" +value+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("分类名称'"+value+"'未定义");
      }
      m_Query->Close();
    }
    m_FatName=value;
}
void __fastcall TKSFat:: SetFatEnd(int    value)
{
    if(value!=0&&value!=1)
        throw Exception("末级标志只能取值0-非末级 1-末级");
    if(value==1&& b_FatLevel==m_FatLevel)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select * from sdfat where FATUPPERCODE='"+m_FatCode+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("本级分类码已有下级不能设置为末级");
      }
      m_Query->Close();
    }
    m_FatEnd=value;
}
void __fastcall TKSFat:: SetFatFadmCode(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("折旧方法不能为空");
    if(value.Length()>18)
      throw Exception("折旧方法长度不能超过18");
    if (value!=m_FatFadmCode)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT fadmcode FROM sdFadm where fadmcode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<1 )
      {
        m_Query->Close();
        throw Exception("折旧方法未定义");
      }
      m_Query->Close();
    }
    m_FatFadmCode=value;
}
void __fastcall TKSFat:: SetFatPeriod(int    value)
{
   if (value<=0)
    throw Exception("使用年限不能小于等于零");
   m_FatPeriod=value;
}
void __fastcall TKSFat:: SetFatValRate(double  value)
{
    if (value<=0)
     throw Exception("残值率不能小于等于零");
    m_FatValRate=value;
}
void __fastcall TKSFat:: SetFatFacsCode(AnsiString value)
{
    if(value.IsEmpty())
       throw Exception("卡片样式编码不能为空");
    if(value.Length()>18)
      throw Exception("卡片样式编码长度不能超过18");
    if (value!=m_FatFacsCode)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT facscode FROM sdFacs where facscode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<1 )
      {
        m_Query->Close();
        throw Exception("卡片样式编码'"+value+"'未定义");
      }
      m_Query->Close();
    }
    m_FatFacsCode=value;
}
//---------------------------------------------------------------------------
AnsiString TKSFat::GetFieldValue(euFat sdFieldName)
{
    switch(sdFieldName)
    {
      case fiFatCode:
           return FatCode;
      case fiFatItem:
           return FatItem;
      case fiFatUpperCode:
           return FatUpperCode;
      case fiFatLevel:
           return FatLevel;
      case fiFatName:
           return FatName;
      case fiFatEnd:
           return FatEnd;
      case fiFatFadmCode:
           return FatFadmCode;
      case fiFatPeriod:
           return FatPeriod;
      case fiFatValRate:
           return FatValRate;
      case fiFatFacsCode:
           return FatFacsCode;
      default:
           throw Exception("当前未定义可取值");
     }
}
//---------------------------------------------------------------------------
void TKSFat::SetFieldValue(euFat sdFieldName, AnsiString value)
{
    switch(sdFieldName)
     {
    case fiFatCode:
         FatCode=value;
          break;
    case fiFatItem:
         FatItem=value;
          break;
    case fiFatUpperCode:
         FatUpperCode=value;
          break;
    case fiFatLevel:
         FatLevel=value.ToInt();
          break;
    case fiFatName:
         FatName=value;
          break;
    case fiFatEnd:
         FatEnd=value.ToInt();
          break;
    case fiFatFadmCode:
         FatFadmCode=value;
          break;
    case fiFatPeriod:
         FatPeriod=value.ToInt();
          break;
    case fiFatValRate:
         FatValRate=value.ToDouble();
          break;
    case fiFatFacsCode:
         FatFacsCode=value;
          break;
    default:
         throw Exception("当前字段未定义可赋值");
      }
}
//---------------------------------------------------------------------------
TKSFat::TKSFat(TDataComm *DC)
                :TKSStandard(DC)
{
    try
    {
        EmptyValue(0);
        EmptyValue(1);
        QueryString="SELECT * FROM sdFat";
        FilterString="";
        OrderString="FatCode";
    }
    catch(Exception &e)
    {
        throw Exception("设备类别初始化出错");
    }
}
//---------------------------------------------------------------------------
TKSFat::TKSFat()
                :TKSStandard()
{
    try
    {
        EmptyValue(0);
        EmptyValue(1);
        QueryString="SELECT * FROM sdFat";
        FilterString="";
        OrderString="FatCode";
    }
    catch(Exception &e)
    {
        throw Exception("设备类别初始化出错");
    }
}
//---------------------------------------------------------------------------
TKSFat::~TKSFat()
{
  try{
     }
  catch(...)
    {
     throw Exception("析构函数出错");
    }
}
//---------------------------------------------------------------------------
void TKSFat::BackupValue()
{
      b_FatCode=m_FatCode;
      b_FatItem=m_FatItem;
      b_FatUpperCode=m_FatUpperCode;
      b_FatLevel=m_FatLevel;
      b_FatName=m_FatName;
      b_FatEnd=m_FatEnd;
      b_FatFadmCode=m_FatFadmCode;
      b_FatPeriod=m_FatPeriod;
      b_FatValRate=m_FatValRate;
      b_FatFacsCode=m_FatFacsCode;
}
//---------------------------------------------------------------------------
void TKSFat::RestoreValue()
{
      m_FatCode=b_FatCode;
      m_FatItem=b_FatItem;
      m_FatUpperCode=b_FatUpperCode;
      m_FatLevel=b_FatLevel;
      m_FatName=b_FatName;
      m_FatEnd=b_FatEnd;
      m_FatFadmCode=b_FatFadmCode;
      m_FatPeriod=b_FatPeriod;
      m_FatValRate=b_FatValRate;
      m_FatFacsCode=b_FatFacsCode;
}
//---------------------------------------------------------------------------
void TKSFat::EmptyValue(int Index)
{
   switch(Index)
   {
    case 0:
        m_FatCode="";
        m_FatItem="";
        m_FatUpperCode="";
        m_FatLevel=0;
        m_FatName="";
        m_FatEnd=0;
        m_FatFadmCode="";
        m_FatPeriod=0;
        m_FatValRate=0;
        m_FatFacsCode="";
    break;
    case 1:
        b_FatCode="";
        b_FatItem="";
        b_FatUpperCode="";
        b_FatLevel=0;
        b_FatName="";
        b_FatEnd=0;
        b_FatFadmCode="";
        b_FatPeriod=0;
        b_FatValRate=0;
        b_FatFacsCode="";
      break;
     }
}
//---------------------------------------------------------------------------
void TKSFat::BatchLetValue()
{
    m_FatCode=m_Query->FieldValues["FatCode"];
    m_FatItem=m_Query->FieldValues["FatItem"];
    m_FatUpperCode=m_Query->FieldValues["FatUpperCode"];
    m_FatLevel=m_Query->FieldValues["FatLevel"];
    m_FatName=m_Query->FieldValues["FatName"];
    m_FatEnd=m_Query->FieldValues["FatEnd"];
    m_FatFadmCode=m_Query->FieldValues["FatFadmCode"];
    m_FatPeriod=m_Query->FieldValues["FatPeriod"];
    m_FatValRate=m_Query->FieldValues["FatValRate"];
    m_FatFacsCode=m_Query->FieldValues["FatFacsCode"];
    BackupValue();
}
//---------------------------------------------------------------------------
void TKSFat::Update()
{
    if(CurStatus==0||CurStatus==1)
        throw Exception("当前不是编辑状态,不能进行存盘操作!");
     m_FatCode=Trim(m_FatUpperCode)+Trim(m_FatItem);
    if(m_FatCode.IsEmpty()==true)
        throw Exception("设备分类码不能为空!");
    m_StoredProc->Close();
    if(CurStatus==2||CurStatus==4)
      {
        m_StoredProc->ProcedureName="sdFat_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@FatCode",ftString,pdInput,18,m_FatCode);
        m_StoredProc->Parameters->CreateParameter("@FatItem",ftString,pdInput,18,m_FatItem);
        m_StoredProc->Parameters->CreateParameter("@FatUpperCode",ftString,pdInput,18,m_FatUpperCode);
        m_StoredProc->Parameters->CreateParameter("@FatLevel",ftInteger,pdInput,10,m_FatLevel);
        m_StoredProc->Parameters->CreateParameter("@FatName",ftString,pdInput,20,m_FatName);
        m_StoredProc->Parameters->CreateParameter("@FatEnd",ftInteger,pdInput,1,m_FatEnd);
        m_StoredProc->Parameters->CreateParameter("@FatFadmCode",ftString,pdInput,18,m_FatFadmCode);
        m_StoredProc->Parameters->CreateParameter("@FatPeriod",ftInteger,pdInput,10,m_FatPeriod);
        m_StoredProc->Parameters->CreateParameter("@FatValRate",ftFloat,pdInput,12,m_FatValRate);
        m_StoredProc->Parameters->CreateParameter("@FatFacsCode",ftString,pdInput,18,m_FatFacsCode);

        m_StoredProc->ExecProc();
        m_StoredProc->Close();

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

        m_StoredProc->Parameters->CreateParameter("@W_FatCode",ftString,pdInput,18,b_FatCode);
        m_StoredProc->Parameters->CreateParameter("@FatCode",ftString,pdInput,18,m_FatCode);
        m_StoredProc->Parameters->CreateParameter("@FatItem",ftString,pdInput,18,m_FatItem);
        m_StoredProc->Parameters->CreateParameter("@FatUpperCode",ftString,pdInput,18,m_FatUpperCode);
        m_StoredProc->Parameters->CreateParameter("@FatLevel",ftInteger,pdInput,10,m_FatLevel);
        m_StoredProc->Parameters->CreateParameter("@FatName",ftString,pdInput,20,m_FatName);
        m_StoredProc->Parameters->CreateParameter("@FatEnd",ftInteger,pdInput,1,m_FatEnd);
        m_StoredProc->Parameters->CreateParameter("@FatFadmCode",ftString,pdInput,18,m_FatFadmCode);
        m_StoredProc->Parameters->CreateParameter("@FatPeriod",ftInteger,pdInput,10,m_FatPeriod);
        m_StoredProc->Parameters->CreateParameter("@FatValRate",ftFloat,pdInput,12,m_FatValRate);
        m_StoredProc->Parameters->CreateParameter("@FatFacsCode",ftString,pdInput,18,m_FatFacsCode);

       m_StoredProc->ExecProc();
       m_StoredProc->Close();
   }
  TKSFat *p=new TKSFat();
  if(CurStatus==2)
    {
     SetActionID(1);
     p->Assign(this);
     AddRecord((void *)p,p->FatCode);
     }
  else
    {
     SetActionID(1);
     p->Assign(this);
     ChangeRecord((void *)p,p->FatCode,this->b_FatCode);
    }
}
//---------------------------------------------------------------------------
void TKSFat::Delete()
{
    if(CurStatus!=1)
        throw Exception("当前状态不能进行删除操作!");
    if(m_FatCode.IsEmpty()==true)
        throw Exception("当前没有记录可以删除!");
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdFat_Delete";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@W_FatCode",ftString,pdInput,18,b_FatCode);
    m_StoredProc->ExecProc();
    m_StoredProc->Close();
    DeleteRecord(this->b_FatCode);
}
//---------------------------------------------------------------------------
void TKSFat::Assign(TKSFat *p)
{
    this->SetActionID(p->CurStatus);
    this->m_FatCode=p->m_FatCode;
    this->m_FatItem=p->m_FatItem;
    this->m_FatUpperCode=p->m_FatUpperCode;
    this->m_FatLevel=p->m_FatLevel;
    this->m_FatName=p->m_FatName;
    this->m_FatEnd=p->m_FatEnd;
    this->m_FatFadmCode=p->m_FatFadmCode;
    this->m_FatPeriod=p->m_FatPeriod;
    this->m_FatValRate=p->m_FatValRate;
    this->m_FatFacsCode=p->m_FatFacsCode;
    this->BackupValue();
}
//---------------------------------------------------------------------------
void TKSFat::AssignValue()
{
    TKSFat *p=(TKSFat *)Records(CurRecNo);
    Assign(p);
}
//---------------------------------------------------------------------------
int TKSFat::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();
            TKSFat *p=new TKSFat();
            SetActionID(1);
            p->Assign(this);
            AddRecord((void *)p,p->FatCode);
            m_Query->Next();
        }
        MoveFirst();
    }
    m_Query->Close();
    return Count;
}
//---------------------------------------------------------------------------
bool TKSFat::Find(AnsiString WhereStr)
{
    AnsiString m_SqlStr;
    if(WhereStr.IsEmpty()==true)
        throw Exception("查找表达式不能为空");
    m_SqlStr="select * from sdFat where  "+WhereStr;
    m_Query->Close();
    m_Query->SQL->Clear();

⌨️ 快捷键说明

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