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

📄 imdoc.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        m_Query->Close();
        throw Exception("货位代码'"+value+"'已存在");
      }
      m_Query->Close();
    }
    m_LocCode=value;
}

void __fastcall TsdLoc::SetLocName(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("贷位名称不能为空");
    if(value.Length()>20)
      throw Exception("货位名称长度不能大于20");
    m_LocName=value;
}

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

void __fastcall TsdLoc::SetLocType(int value)
{
    if(value!=1 && value!=2 && value!=3 && value!=4 && value!=5 && value!=6 && value!=7 && value!=8 && value!=9)
      throw Exception("货位类型只能取值1-存储,2-在制,3-待检,4-待发,5-在途,6-维修,7-次品,8-废品,9-待处理");
  	m_LocType=value;
}

void __fastcall TsdLoc::SetLocSthCode(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("仓库编码不能为空");
    if(value.Length()>18)
      throw Exception("仓库编码长度不能大于18");
    if(value!=m_LocSthCode)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT SthCODE FROM SDSth WHERE SthCODE='" +value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("仓库编码'"+value+"'未定义");
      }
      m_Query->Close();
    }
    m_LocSthCode=value;
}


void __fastcall TsdLoc::SetLocStkCode(int value)
{
    if(value!=1 && value!=2 && value!=3)
      throw Exception("盘点方法只能是:1-一般盘点,2-定期盘点,3-循环盘点");
    m_LocStkCode=value;
}


void __fastcall TsdLoc::SetLocVirtual(int value)
{
  if(value!=0 && value!=1)
    throw Exception("虚拟货位标志只能取值0-实物货位1-虚拟货位");
  m_LocVirtual=value;
}


void __fastcall TsdLoc::SetLocPlnflg(int value)
{
  if(value!=0 && value!=1)
    throw Exception("计划运算标志只能取值0-不运算1-运算");
  m_LocPlnflg=value;
}


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

AnsiString TsdLoc::GetFieldValue(euLoc sdFieldName)
{
    switch(sdFieldName)
    {
      case fiLocCode:
        return LocCode;
      case fiLocName:
        return LocName;
      case fiLocDesc:
        return LocDesc;
      case fiLocType:
      	return AnsiString(LocType);
      case fiLocSthCode:
        return LocSthCode;
      case fiLocStkCode:
        return LocStkCode;
      case fiLocVirtual:
        return AnsiString(LocVirtual);
      case fiLocPlnflg:
        return AnsiString(LocPlnflg);
      default:
        throw Exception("当前字段未定义可取值");
    }
}

void TsdLoc::SetFieldValue(euLoc sdFieldName, AnsiString value)
{
    switch(sdFieldName)
    {
      case fiLocCode:
        LocCode=value;
        break;
      case fiLocName:
        LocName=value;
        break;
      case fiLocDesc:
        LocDesc=value;
        break;
      case fiLocType:
      	LocType=value.ToInt();
      	break;
      case fiLocSthCode:
        LocSthCode=value;
        break;
      case fiLocStkCode:
        LocStkCode=value.ToInt();
        break;
      case fiLocVirtual:
        LocVirtual=value.ToInt();
        break;
      case fiLocPlnflg:
        LocPlnflg=value.ToInt();
        break;
      default:
        throw Exception("当前字段未定义可赋值");
    }
}

void TsdLoc::Update()
{
  if(CurStatus==0||CurStatus==1)
    throw Exception("当前不是编辑状态,不能进行存盘操作!");
  if(m_LocCode.IsEmpty()==true)
    throw Exception("货位的编码不能为空!");
  m_StoredProc->Close();
  if(CurStatus==2||CurStatus==4)
  {
        m_StoredProc->ProcedureName="sdLoc_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@LocCode",ftString,pdInput,18,m_LocCode);
        m_StoredProc->Parameters->CreateParameter("@LocSthCode",ftString,pdInput,18,m_LocSthCode);
        m_StoredProc->Parameters->CreateParameter("@LocName",ftString,pdInput,20,m_LocName);
        m_StoredProc->Parameters->CreateParameter("@LocDesc",ftString,pdInput,40,m_LocDesc);
        m_StoredProc->Parameters->CreateParameter("@LocType",ftInteger,pdInput,1,m_LocType);
        m_StoredProc->Parameters->CreateParameter("@LocStkCode",ftInteger,pdInput,1,m_LocStkCode);
        m_StoredProc->Parameters->CreateParameter("@LocVirtual",ftInteger,pdInput,1,m_LocVirtual);
        m_StoredProc->Parameters->CreateParameter("@LocPlnflg",ftInteger,pdInput,1,m_LocPlnflg);
 
        m_StoredProc->ExecProc();
  }
  else
  {
        m_StoredProc->ProcedureName="sdLoc_Update";
        m_StoredProc->Parameters->Clear();

        m_StoredProc->Parameters->CreateParameter("@W_LocCode",ftString,pdInput,18,b_LocCode);
        m_StoredProc->Parameters->CreateParameter("@W_LocSthCode",ftString,pdInput,18,b_LocSthCode);
        m_StoredProc->Parameters->CreateParameter("@LocCode",ftString,pdInput,18,m_LocCode);
        m_StoredProc->Parameters->CreateParameter("@LocSthCode",ftString,pdInput,18,m_LocSthCode);
        m_StoredProc->Parameters->CreateParameter("@LocName",ftString,pdInput,20,m_LocName);
        m_StoredProc->Parameters->CreateParameter("@LocDesc",ftString,pdInput,40,m_LocDesc);
        m_StoredProc->Parameters->CreateParameter("@LocType",ftInteger,pdInput,1,m_LocType);
        m_StoredProc->Parameters->CreateParameter("@LocStkCode",ftInteger,pdInput,1,m_LocStkCode);
        m_StoredProc->Parameters->CreateParameter("@LocVirtual",ftInteger,pdInput,1,m_LocVirtual);
        m_StoredProc->Parameters->CreateParameter("@LocPlnflg",ftInteger,pdInput,1,m_LocPlnflg);
 
       m_StoredProc->ExecProc();
  }
  TsdLoc *p=new TsdLoc();
  if(CurStatus==2)
  {
    SetActionID(1);
    p->Assign(this);
    AddRecord((void *)p,p->LocCode);
  }
  else
  {
    SetActionID(1);
    p->Assign(this);
    ChangeRecord((void *)p,p->LocCode,this->b_LocCode);
  }
}

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


void TsdLoc::BackupValue()
{
    b_LocCode=m_LocCode;
    b_LocName=m_LocName;
    b_LocDesc=m_LocDesc;
    b_LocType=m_LocType;
    b_LocSthCode=m_LocSthCode;
    b_LocStkCode=m_LocStkCode;
    b_LocVirtual=m_LocVirtual;
    b_LocPlnflg=m_LocPlnflg;
}


void TsdLoc::RestoreValue()
{
    m_LocCode=b_LocCode;
    m_LocName=b_LocName;
    m_LocDesc=b_LocDesc;
    m_LocType=b_LocType;
    m_LocSthCode=b_LocSthCode;
    m_LocStkCode=b_LocStkCode;
    m_LocVirtual=b_LocVirtual;
    m_LocPlnflg=b_LocPlnflg;
}


void TsdLoc::EmptyValue(int Index)
{
   switch(Index)
   {
     case 0:
        m_LocCode="";
        m_LocName="";
        m_LocDesc="";
        m_LocType=1;
        m_LocSthCode="";
        m_LocStkCode=1;
        m_LocVirtual=0;
        m_LocPlnflg=1;
        break;
     case 1:
        b_LocCode="";
        b_LocName="";
        b_LocDesc="";
        b_LocType=1;
        b_LocSthCode="";
        b_LocStkCode=1;
        b_LocVirtual=0;
        b_LocPlnflg=1;
        break;
    }
}


void TsdLoc::BatchLetValue()
{
    m_LocCode=m_Query->FieldValues["LocCode"];
    m_LocName=m_Query->FieldValues["LocName"];
    m_LocDesc=m_Query->FieldValues["LocDesc"];
    m_LocType=m_Query->FieldValues["LocType"];
    m_LocSthCode=m_Query->FieldValues["LocSthCode"];
    m_LocStkCode=m_Query->FieldValues["LocStkCode"];
    m_LocVirtual=m_Query->FieldValues["LocVirtual"];
    m_LocPlnflg=m_Query->FieldValues["LocPlnflg"];
    BackupValue();
}

void TsdLoc::Assign(TsdLoc *p)
{
    SetActionID(p->CurStatus);
    m_LocCode=p->m_LocCode;
    m_LocName=p->m_LocName;
    m_LocDesc=p->m_LocDesc;
    m_LocType=p->m_LocType;
    m_LocSthCode=p->m_LocSthCode;
    m_LocStkCode=p->m_LocStkCode;
    m_LocVirtual=p->m_LocVirtual;
    m_LocPlnflg=p->m_LocPlnflg;
    BackupValue();
}

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

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

}


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

    if(WhereStr.IsEmpty()==true)
      throw Exception("查找表达式不能为空");
    m_SqlStr="SELECT * FROM SDLoc 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;
    }
}
//-------------------------------------------------------------------------
TsdLoc::~TsdLoc()
{
  try
  {
  }
  catch(...)
  {
    throw Exception("析构函数出错");
  }
}
//-------------------------------------------------------------------------

///////////////////////////////////////////////////////
//        (库存操作原因) ImReason implement
///////////////////////////////////////////////////////
void __fastcall TsdImReason::SetImReasonCode(AnsiString value)
{
    if (value.IsEmpty() )
       throw Exception("库存操作原因代码不能为空!");
    if(value.Length()>18)
      throw Exception("原因代码长度不能大于18");
    if (value.UpperCase()!=m_ImReasonCode.UpperCase())
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT ImReasonCode FROM SDImReason WHERE ImReasonCode='" +value+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("库存操作原因代码'"+value+"'已存在");
      }
      m_Query->Close();
    }
    m_ImReasonCode=value;
}
//-------------------------------------------------------------------------
void __fastcall TsdImReason::SetImReasonDesc(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("操作原因不能为空");
    if(value.Length()>80)
      throw Exception("操作原因长度不能大于80");
    m_ImReasonDesc=value;
}
//-------------------------------------------------------------------------
void __fastcall TsdImReason::SetImReasonType(int value)
{
    if(value!=1 && value!=2 && value!=3 && value!=4 && value!=5)
      throw Exception("操作类型只能是:1-入库,2-出库,3-调拔,4-报废,5-盘点");
	  m_ImReasonType=value;
}
//-------------------------------------------------------------------------
void __fastcall TsdImReason::SetImReasonFrom(int value)
{
    if(value!=1 && value!=2 && value!=3 && value!=4 && value!=5)

⌨️ 快捷键说明

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