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

📄 imdoc.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("仓库编码'"+value+"'已存在");
      }
      m_Query->Close();
    }
    m_SthCode=value;
}

void __fastcall TsdSth::SetSthName(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("仓库名称不能为空");
    if(value.Length()>20)
      throw Exception("仓库名称长度不能大于20");
    if(value.UpperCase()!=m_SthName.UpperCase())
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT SthCODE FROM SDSth WHERE SthName='" +value+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("仓库名称:'"+value+"'已存在");
      }
      m_Query->Close();
    }
    m_SthName=value;
}

void __fastcall TsdSth::SetSthDesc(AnsiString value)
{
    if(value.Length()>40)
      throw Exception("备注长度不能大于40");
    m_SthDesc=value;
}

void __fastcall TsdSth::SetSthDeptCode(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("部门编码不能为空");
    if(value.Length()>18)
      throw Exception("部门编码长度不能大于18");
    if(value!=m_SthDeptCode)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT DeptCODE FROM SDDept WHERE DeptCODE='" +value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<1)
      {
        m_Query->Close();
        throw Exception("部门编码'"+value+"'未定义");
      }
      m_Query->Close();
    }
    m_SthDeptCode=value;
}

void __fastcall TsdSth::SetSthAddr(AnsiString value)
{
    if(value.Length()>40)
      throw Exception("仓库地址长度不能大于40");
	  m_SthAddr=value;
}

void __fastcall TsdSth::SetSthZip(AnsiString value)
{
    if(value.Length()>6)
      throw Exception("邮编长度不能大于6");
    m_SthZip=value;
}

void __fastcall TsdSth::SetSthTel(AnsiString value)
{
    if(value.Length()>20)
      throw Exception("电话长度不能大于20");
    m_SthTel=value;
}

void __fastcall TsdSth::SetSthLinkMan(AnsiString value)
{
    if(value.Length()>20)
      throw Exception("联系人长度不能大于20");
    m_SthLinkMan=value;
}

void __fastcall TsdSth::SetSthOwn(int value)
{
    if(value!=0 && value!=1)
      throw Exception("公司内部仓库标志只能取值(0-外部仓库,1-内部仓库).");
    m_SthOwn=value;
}


TsdSth::TsdSth(TDataComm *DC)
:TsdStandard(DC)
{
  try{
    QueryString="SELECT * FROM SDSTH";
    FilterString="";
    OrderString="STHCODE";
    EmptyValue(0);
    EmptyValue(1);
  }
  catch(...)
  {
    throw Exception("构造函数出错!");
  }
}
TsdSth::TsdSth()
:TsdStandard()
{
  try{
    QueryString="SELECT * FROM SDSTH";
    FilterString="";
    OrderString="STHCODE";
    EmptyValue(0);
    EmptyValue(1);
  }
  catch(...)
  {
    throw Exception("构造函数出错!");
  }
}

AnsiString TsdSth::GetFieldValue(euSth sdFieldName)
{
    switch(sdFieldName)
    {
      case fiSthCode:
        return SthCode;
      case fiSthName:
        return SthName;
      case fiSthDesc:
        return SthDesc;
      case fiSthDeptCode:
        return SthDeptCode;
      case fiSthAddr:
        return SthAddr;
      case fiSthZip:
        return SthZip;
      case fiSthTel:
        return SthTel;
      case fiSthLinkman:
        return SthLinkMan;
      case fiSthOwn:
        return AnsiString(SthOwn);
      default:
        throw Exception("当前字段未定义可取值");
    }
}

void TsdSth::SetFieldValue(euSth sdFieldName, AnsiString value)
{
    switch(sdFieldName)
    {
      case fiSthCode:
        SthCode=value;
        break;
      case fiSthName:
        SthName=value;
        break;
      case fiSthDesc:
        SthDesc=value;
        break;
      case fiSthDeptCode:
        SthDeptCode=value;
        break;
      case fiSthAddr:
        SthAddr=value;
        break;
      case fiSthZip:
        SthZip=value;
        break;
      case fiSthTel:
        SthTel=value;
        break;
      case fiSthLinkman:
        SthLinkMan=value;
        break;
      case fiSthOwn:
        SthOwn=value.ToInt();
        break;
      default:
        throw Exception("当前字段未定义可赋值");
    }
}

void TsdSth::Update()
{
  if(CurStatus==0||CurStatus==1)
    throw Exception("当前不是编辑状态,不能进行存盘操作!");
  if(m_SthCode.IsEmpty()==true)
    throw Exception("仓库的编码不能为空!");
  m_StoredProc->Close();
  if(CurStatus==2||CurStatus==4)
  {
        m_StoredProc->ProcedureName="sdSth_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@SthCode",ftString,pdInput,18,m_SthCode);
        m_StoredProc->Parameters->CreateParameter("@SthName",ftString,pdInput,20,m_SthName);
        m_StoredProc->Parameters->CreateParameter("@SthDesc",ftString,pdInput,40,m_SthDesc);
        m_StoredProc->Parameters->CreateParameter("@SthDeptCode",ftString,pdInput,18,m_SthDeptCode);
        m_StoredProc->Parameters->CreateParameter("@SthAddr",ftString,pdInput,40,m_SthAddr);
        m_StoredProc->Parameters->CreateParameter("@SthZip",ftString,pdInput,6,m_SthZip);
        m_StoredProc->Parameters->CreateParameter("@SthTel",ftString,pdInput,20,m_SthTel);
        m_StoredProc->Parameters->CreateParameter("@SthLinkman",ftString,pdInput,20,m_SthLinkMan);
        m_StoredProc->Parameters->CreateParameter("@SthOwn",ftInteger,pdInput,1,m_SthOwn);

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

        m_StoredProc->Parameters->CreateParameter("@W_SthCode",ftString,pdInput,18,b_SthCode);
        m_StoredProc->Parameters->CreateParameter("@SthCode",ftString,pdInput,18,m_SthCode);
        m_StoredProc->Parameters->CreateParameter("@SthName",ftString,pdInput,20,m_SthName);
        m_StoredProc->Parameters->CreateParameter("@SthDesc",ftString,pdInput,40,m_SthDesc);
        m_StoredProc->Parameters->CreateParameter("@SthDeptCode",ftString,pdInput,18,m_SthDeptCode);
        m_StoredProc->Parameters->CreateParameter("@SthAddr",ftString,pdInput,40,m_SthAddr);
        m_StoredProc->Parameters->CreateParameter("@SthZip",ftString,pdInput,6,m_SthZip);
        m_StoredProc->Parameters->CreateParameter("@SthTel",ftString,pdInput,20,m_SthTel);
        m_StoredProc->Parameters->CreateParameter("@SthLinkman",ftString,pdInput,20,m_SthLinkMan);
        m_StoredProc->Parameters->CreateParameter("@SthOwn",ftInteger,pdInput,1,m_SthOwn);

       m_StoredProc->ExecProc();
  }
  TsdSth *p=new TsdSth();
  if(CurStatus==2)
  {
    SetActionID(1);
    p->Assign(this);
    AddRecord((void *)p,p->SthCode);
  }
  else
  {
    SetActionID(1);
    p->Assign(this);
    ChangeRecord((void *)p,p->SthCode,this->b_SthCode);
  }
}

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

void TsdSth::BackupValue()
{
    b_SthCode=m_SthCode;
    b_SthName=m_SthName;
    b_SthDesc=m_SthDesc;
    b_SthDeptCode=m_SthDeptCode;
    b_SthAddr=m_SthAddr;
    b_SthZip=m_SthZip;
    b_SthTel=m_SthTel;
    b_SthLinkMan=m_SthLinkMan;
    b_SthOwn=m_SthOwn;
}


void TsdSth::RestoreValue()
{
    m_SthCode=b_SthCode;
    m_SthName=b_SthName;
    m_SthDesc=b_SthDesc;
    m_SthDeptCode=b_SthDeptCode;
    m_SthAddr=b_SthAddr;
    m_SthZip=b_SthZip;
    m_SthTel=b_SthTel;
    m_SthLinkMan=b_SthLinkMan;
    m_SthOwn=b_SthOwn;

}

void TsdSth::EmptyValue(int Index)
{
   switch(Index)
   {
     case 0:
        m_SthCode="";
        m_SthName="";
        m_SthDesc="";
        m_SthDeptCode="";
        m_SthAddr="";
        m_SthZip="";
        m_SthTel="";
        m_SthLinkMan="";
        m_SthOwn=1;
        break;
     case 1:
        b_SthCode="";
        b_SthName="";
        b_SthDesc="";
        b_SthDeptCode="";
        b_SthAddr="";
        b_SthZip="";
        b_SthTel="";
        b_SthLinkMan="";
        b_SthOwn=1;
        break;
    }
}


void TsdSth::BatchLetValue()
{
    m_SthCode=m_Query->FieldValues["SthCode"];
    m_SthName=m_Query->FieldValues["SthName"];
    m_SthDesc=m_Query->FieldValues["SthDesc"];
    m_SthDeptCode=m_Query->FieldValues["SthDeptCode"];
    m_SthAddr=m_Query->FieldValues["SthAddr"];
    m_SthZip=m_Query->FieldValues["SthZip"];
    m_SthTel=m_Query->FieldValues["SthTel"];
    m_SthLinkMan=m_Query->FieldValues["SthLinkMan"];
    m_SthOwn=m_Query->FieldValues["SthOwn"];
    BackupValue();
}

void TsdSth::Assign(TsdSth *p)
{
    SetActionID(p->CurStatus);
    m_SthCode=p->m_SthCode;
    m_SthName=p->m_SthName;
    m_SthDesc=p->m_SthDesc;
    m_SthDeptCode=p->m_SthDeptCode;
    m_SthAddr=p->SthAddr;
    m_SthZip=p->SthZip;
    m_SthTel=p->SthTel;
    m_SthLinkMan=p->SthLinkMan;
    m_SthOwn=p->m_SthOwn;
    BackupValue();
}

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

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


bool TsdSth::Find(AnsiString WhereStr)
{
    AnsiString m_SqlStr;

    if(WhereStr.IsEmpty()==true)
      throw Exception("查找表达式不能为空");
    m_SqlStr="SELECT * FROM SDSth 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;
    }
}

TsdSth::~TsdSth()
{
    try
    {
    }
    catch(...)
    {
      throw Exception("析构函数出错");
    }
}

////////////////////////////////////////////////////
//        (货位编码) Loc implement
////////////////////////////////////////////////////
void __fastcall TsdLoc::SetLocCode(AnsiString value)
{
    if(value.IsEmpty() )
      throw Exception("货位代码不能为空!");
    if(value.Length()>18)
      throw Exception("货位代码长度不能大于18");
    if(value.UpperCase()!=m_LocCode.UpperCase())
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT LocCode FROM SDLoc WHERE LocCode='" +value+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {

⌨️ 快捷键说明

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