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

📄 mmdoc.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        case fiProcessMlt:
           ProcessMlt=Value.ToDouble();
           break;
        case fiProcessDesc:
           ProcessDesc=Value;
           break;
        case fiProcessUser:
           ProcessUser=Value;
           break;
        default:
           throw Exception("当前字段未定义可赋值!");
      }
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessCode(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("工序代码不能为空!");
    if(value.Length()>18)
      throw Exception("工序编码长度不能大于18!");
    if(UpperCase(value) != m_ProcessCode.UpperCase()){
      if(this->FindKey(value))
         throw Exception("已经存在工序代码:'"+value+"',不能重复!");
    }
    m_ProcessCode=value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessName(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("工序名称不能为空!");
    if(value.Length()>20)
      throw Exception("工序名长度不能大于20!");
    m_ProcessName=value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessWc(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("工序所在的工作中心不能为空!");
    if(value.Length()>18)
      throw Exception("工序所属工作中心代码长度不能大于18!");
    if(value!=m_ProcessWc)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT WcCode from sdWc where WcCode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("工作中心:'"+value+"'的资料未定义!");
      }
      m_Query->Close();
    }
    m_ProcessWc=value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess:: SetProcessLoc(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("在制货位不能为空!");
    if(value.Length()>18)
      throw Exception("在制货位编码长度不能大于18!");
    if(value!=m_ProcessLoc)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT LocCode from sdLoc where LocCode='"+value+"' and LocType=2");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
         m_Query->Close();
         throw Exception("在制货位:'"+value+"'的资料没有定义!");
      }
      m_Query->Close();
    }
    m_ProcessLoc=value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessState(int value)
{
    m_ProcessState = value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessType(int value)
{
    if(value!=1 && value!=2 && value!=3 && value!=4)
      throw Exception("工序类型只能取值(1-正常,2-平行,3-交叉,4-混合).");
    m_ProcessType = value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessChkFlg(int value)
{
    if(value!=0 && value!=1)
      throw Exception("检验标志只能取值(0-不检验,1-需检验).");
    m_ProcessChkFlg = value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessWxFlg(int value)
{
    if(value!=0 && value!=1)
      throw Exception("外协标志只能取值(0-公司生产,1-外协).");
    m_ProcessWxFlg = value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessWxAmt(double value)
{
    if(m_ProcessWxFlg==0)
       m_ProcessWxAmt=0;
    else
      if(value<=0)
         throw Exception("外协工序时需输入外协费!");
    m_ProcessWxAmt = value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessSpec(AnsiString value)
{
    if(value.Length()>40)
       throw Exception("特殊工艺要求长度不能大于40!");
    m_ProcessSpec = value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessEdate(AnsiString value)
{
    if(value.IsEmpty())
       throw Exception("生效日期不能为空!");
    m_ProcessEdate=Validate(value);
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessIdate(AnsiString value)
{
    if(m_ProcessEdate.IsEmpty())
       throw Exception("生效日期不能为空!");
    if(value.IsEmpty())
       m_ProcessIdate="";
    else
    {
       m_ProcessIdate=Validate(value);
       if(m_ProcessIdate<=m_ProcessEdate)
       {
          m_ProcessIdate="";
          throw Exception("失效日期不能小于等于生效日期!");
       }
    }
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessQlt(double value)
{
    if(value<0)
      throw Exception("排队提前期不能小于零!");
    m_ProcessQlt=value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessSlt(double value)
{
    if(value<0)
      throw Exception("准备提前期不能小于零!");
    m_ProcessSlt=value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessRlt(double value)
{
    if(value<0)
      throw Exception("加工提前期不能小于零!");
    m_ProcessRlt=value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessWlt(double value)
{
    if(value<0)
      throw Exception("等待提前期不能小于零!");
    m_ProcessWlt=value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessMlt(double value)
{
    if(value<0)
      throw Exception("移动提前期不能小于零!");
    m_ProcessMlt=value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessUser(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("操作员代码不能为空!");
    if(value.Length()>18)
      throw Exception("操作员代码长度不能大于18!");
    if(value!=m_ProcessUser)
    {
      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_ProcessUser=value;
}
//-----------------------------------------------------------------------------
void __fastcall TsdProcess::SetProcessDesc(AnsiString value)
{
    if(value.Length()>40)
      throw Exception("备注长度不能大于40!");
    m_ProcessDesc=value;
}
//-----------------------------------------------------------------------------
void TsdProcess::BackupValue()
{
    b_ProcessCode   =m_ProcessCode;
    b_ProcessName   =m_ProcessName;
    b_ProcessWc     =m_ProcessWc;
    b_ProcessLoc    =m_ProcessLoc;
    b_ProcessState  =m_ProcessState;
    b_ProcessType   =m_ProcessType;
    b_ProcessChkFlg =m_ProcessChkFlg;
    b_ProcessWxFlg  =m_ProcessWxFlg;
    b_ProcessWxAmt  =m_ProcessWxAmt;
    b_ProcessEdate  =m_ProcessEdate;
    b_ProcessIdate  =m_ProcessIdate;
    b_ProcessSpec   =m_ProcessSpec;
    b_ProcessQlt    =m_ProcessQlt;
    b_ProcessSlt    =m_ProcessSlt;
    b_ProcessRlt    =m_ProcessRlt;
    b_ProcessWlt    =m_ProcessWlt;
    b_ProcessMlt    =m_ProcessMlt;
    b_ProcessDesc   =m_ProcessDesc;
    b_ProcessUser   =m_ProcessUser;
    b_ProcessSysDate=m_ProcessSysDate;
}
//-----------------------------------------------------------------------------
void TsdProcess::RestoreValue()
{
    m_ProcessCode   =b_ProcessCode;
    m_ProcessName   =b_ProcessName;
    m_ProcessWc     =b_ProcessWc;
    m_ProcessLoc    =b_ProcessLoc;
    m_ProcessState  =b_ProcessState;
    m_ProcessType   =b_ProcessType;
    m_ProcessChkFlg =b_ProcessChkFlg;
    m_ProcessWxFlg  =b_ProcessWxFlg;
    m_ProcessWxAmt  =b_ProcessWxAmt;
    m_ProcessEdate  =b_ProcessEdate;
    m_ProcessIdate  =b_ProcessIdate;
    m_ProcessSpec   =b_ProcessSpec;
    m_ProcessQlt    =b_ProcessQlt;
    m_ProcessSlt    =b_ProcessSlt;
    m_ProcessRlt    =b_ProcessRlt;
    m_ProcessWlt    =b_ProcessWlt;
    m_ProcessMlt    =b_ProcessMlt;
    m_ProcessDesc   =b_ProcessDesc;
    m_ProcessUser   =b_ProcessUser;
    m_ProcessSysDate=b_ProcessSysDate;
}
//-----------------------------------------------------------------------------
void TsdProcess::EmptyValue(int Index)
{
    switch(Index)
    {
      case 0:
          m_ProcessCode     ="";
          m_ProcessName     ="";
          m_ProcessWc       ="";
          m_ProcessLoc      ="";
          m_ProcessState    =0;
          m_ProcessType     =0;
          m_ProcessChkFlg   =0;
          m_ProcessWxFlg    =0;
          m_ProcessWxAmt    =0;
          m_ProcessEdate    ="";
          m_ProcessIdate    ="";
          m_ProcessSpec     ="";
          m_ProcessQlt      =0;
          m_ProcessSlt      =0;
          m_ProcessRlt      =0;
          m_ProcessWlt      =0;
          m_ProcessMlt      =0;
          m_ProcessDesc     ="";
          m_ProcessUser     ="";
          m_ProcessSysDate  ="";
          break;
      case 1:
          b_ProcessCode     ="";
          b_ProcessName     ="";
          b_ProcessWc       ="";
          b_ProcessLoc      ="";
          b_ProcessState    =0;
          b_ProcessType     =0;
          b_ProcessChkFlg   =0;
          b_ProcessWxFlg    =0;
          b_ProcessWxAmt    =0;
          b_ProcessEdate    ="";
          b_ProcessIdate    ="";
          b_ProcessSpec     ="";
          b_ProcessQlt      =0;
          b_ProcessSlt      =0;
          b_ProcessRlt      =0;
          b_ProcessWlt      =0;
          b_ProcessMlt      =0;
          b_ProcessDesc     ="";
          b_ProcessUser     ="";
          b_ProcessSysDate  ="";
          break;
    }
}
//-----------------------------------------------------------------------------
void TsdProcess::Delete()
{
    if(CurStatus!=1)
       throw Exception("当前状态不能进行删除操作!");
    if(m_ProcessCode.IsEmpty())
       throw Exception("当前没有记录可以删除!");
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdProcess_Delete";
    m_StoredProc->Parameters->Clear();
 	 m_StoredProc->Parameters->CreateParameter("@W_ProcessCode",ftString,pdInput,18,b_ProcessCode);
    m_StoredProc->ExecProc();
    m_StoredProc->Close();

    DeleteRecord(this->b_ProcessCode);
}
//-----------------------------------------------------------------------------
void TsdProcess::Update()
{
    if(CurStatus==0||CurStatus==1)
      throw Exception("当前不是编辑状态,不能进行存盘操作!");
    if(m_ProcessCode.IsEmpty()==true)
      throw Exception("工序代码不能为空!");
    m_StoredProc->Close();
    if(CurStatus==2||CurStatus==4)
    {
      m_StoredProc->ProcedureName="sdProcess_Insert";
      m_StoredProc->Parameters->Clear();
      m_StoredProc->Parameters->CreateParameter("@ProcessCode",ftString,pdInput,18,m_ProcessCode);
      m_StoredProc->Parameters->CreateParameter("@ProcessName",ftString,pdInput,20,m_ProcessName);
      m_StoredProc->Parameters->CreateParameter("@ProcessWc",ftString,pdInput,18,m_ProcessWc);
      m_StoredProc->Parameters->CreateParameter("@ProcessLoc",ftString,pdInput,18,m_ProcessLoc);
      m_StoredProc->Parameters->CreateParameter("@ProcessState",ftInteger,pdInput,1,m_ProcessState);
      m_StoredProc->Parameters->CreateParameter("@ProcessType",ftInteger,pdInput,1,m_ProcessType);
      m_StoredProc->Parameters->CreateParameter("@ProcessChkFlg",ftInteger,pdInput,1,m_ProcessChkFlg);
      m_StoredProc->Parameters->CreateParameter("@ProcessWxFlg",ftInteger,pdInput,1,m_ProcessWxFlg);
      m_StoredProc->Parameters->CreateParameter("@ProcessWxAmt",ftFloat,pdInput,12,m_ProcessWxAmt);
      m_StoredProc->Parameters->CreateParameter("@ProcessEdate",ftString,pdInput,10,m_ProcessEdate);
      m_StoredProc->Parameters->CreateParameter("@ProcessIdate",ftString,pdInput,10,m_ProcessIdate);
      m_StoredProc->Parameters->CreateParameter("@ProcessSpec",ftString,pdInput,40,m_ProcessSpec);
      m_StoredProc->Parameters->CreateParameter("@ProcessQlt",ftFloat,pdInput,12,m_ProcessQlt);
      m_StoredProc->Parameters->CreateParameter("@ProcessSlt",ftFloat,pdInput,12,m_ProcessSlt);
      m_StoredProc->Parameters->CreateParameter("@ProcessRlt",ftFloat,pdInput,12,m_ProcessRlt);
      m_StoredProc->Parameters->CreateParameter("@ProcessWlt",ftFloat,pdInput,12,m_ProcessWlt);
      m_StoredProc->Parameters->CreateParameter("@ProcessMlt",ftFloat,pdInput,12,m_ProcessMlt);
      m_StoredProc->Parameters->CreateParameter("@ProcessDesc",ftString,pdInput,40,m_ProcessDesc);
      m_StoredProc->Parameters->CreateParameter("@ProcessUser",ftString,pdInput,18,m_ProcessUser);
      m_StoredProc->Parameters->CreateParameter("@ProcessSysDate",ftString,pdOutput,40,m_ProcessSysDate);
      m_StoredProc->ExecProc();
      m_ProcessSysDate= m_StoredProc->Parameters->ParamValues["@ProcessSysDate"];
      m_StoredProc->Close();
    }
    else
    {
      m_StoredProc->ProcedureName="sdProcess_Update";
      m_StoredProc->Parameters->Clear();
      m_StoredProc->Parameters->CreateParameter("@W_ProcessCode",ftString,pdInput,18,b_ProcessCode);
      m_StoredProc->Parameters->CreateParameter("@ProcessCode",ftString,pdInput,18,m_ProcessCode);
      m_StoredProc->Parameters->CreateParameter("@ProcessName",ftString,pdInput,20,m_ProcessName);
      m_StoredProc->Parameters->CreateParameter("@ProcessWc",ftString,pdInput,18,m_ProcessWc);
      m_StoredProc->Parameters->CreateParameter("@ProcessLoc",ftString,pdInput,18,m_ProcessLoc);
      m_StoredProc->Parameters->CreateParameter("@ProcessState",ftInteger,pdInput,1,m_ProcessState);
      m_StoredProc->Parameters->CreateParameter("@ProcessType",ftInteger,pdInput,1,m_ProcessType);
      m_StoredProc->Parameters->CreateParameter("@ProcessChkFlg",ftInteger,pdInput,1,m_ProcessChkFlg);
      m_StoredProc->Parameters->CreateParameter("@ProcessWxFlg",ftInteger,pdInput,1,m_ProcessWxFlg);
      m_StoredProc->Parameters->CreateParameter("@ProcessWxAmt",ftFloat,pdInput,12,m_ProcessWxAmt);
      m_StoredProc->Parameters->CreateParameter("@ProcessEdate",ftString,pdInput,10,m_ProcessEdate);
      m_StoredProc->Parameters->CreateParameter("@ProcessIdate",ftString,pdInput,10,m_ProcessIdate);
      m_StoredProc->Parameters->CreateParameter("@ProcessSpec",ftString,pdInput,40,m_ProcessSpec);
      m_StoredProc->Parameters->CreateParameter("@ProcessQlt",ftFloat,pdInput,12,m_ProcessQlt);
      m_StoredProc->Parameters->CreateParameter("@ProcessSlt",ftFloat,pdInput,12,m_ProcessSlt);
      m_StoredProc->Parameters->CreateParameter("@ProcessRlt",ftFloat,pdInput,12,m_ProcessRlt);
      m_StoredProc->Parameters->CreateParameter("@ProcessWlt",ftFloat,pdInput,12,m_ProcessWlt);
      m_StoredProc->Parameters->CreateParameter("@ProcessMlt",ftFloat,pdInput,12,m_ProcessMlt);
      m_StoredProc->Parameters->CreateParameter("@ProcessDesc",ftString,pdInput,40,m_ProcessDesc);
     

⌨️ 快捷键说明

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