📄 mmdoc.cpp
字号:
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 + -