📄 cmdoc.cpp
字号:
bool TKSCc::Find(AnsiString WhereStr)
{
AnsiString l_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空");
l_SqlStr="SELECT * FROM SDCc WHERE "+WhereStr;
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add(l_SqlStr);
l_Query->Open();
if(l_Query->RecordCount!=1)
{
l_Query->Close();
return false;
}
else
{
BatchLetValue();
l_Query->Close();
return true;
}
}
TKSCc::~TKSCc()
{
try{
}
catch(...)
{
throw Exception("析构函数出错");
}
}
//===================================================
// (TKSRwt)定额工时
//===================================================
void __fastcall TKSRwt:: SetRwtGoods(AnsiString value)
{
if (value.IsEmpty() )
throw Exception("产品编码不能为空!");
if(value.Length()>18)
throw Exception("产品编码长度不能超过18");
if (value!=l_RwtGoods)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("SELECT GoodsCode FROM sdGoods WHERE GoodsCode='" +value+"'");
l_Query->Open();
if(l_Query->RecordCount<=0)
{
l_Query->Close();
throw Exception("产品编码'"+value+"'未定义");
}
}
l_RwtGoods=value;
}
void __fastcall TKSRwt:: SetRwtLoc(AnsiString value)
{
if(value.IsEmpty()==true)
throw Exception("货位编码不能为空");
if(value.Length()>18)
throw Exception("货位编码长度不能超过18");
if (value!=l_RwtLoc)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("select LocCode from sdLoc where LocCode='"+value+"'");
l_Query->Open();
if(l_Query->RecordCount<1 )
{
l_Query->Close();
throw Exception("货位编码'"+value+"'未定义");
}
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("SELECT * FROM sdGoods ,sdlg where ( goodstype='1' or goodstype='2') and GOODSCODE=LGGOODSCODE and LGLOCCODE='"+value+"' and goodscode='"+ l_RwtGoods+"' order by goodscode");
l_Query->Open();
if(l_Query->RecordCount<1 )
{
l_Query->Close();
throw Exception("物料编码 '"+ l_RwtGoods+"'不是成品、半成品或不在该货位!");
}
l_Query->Close();
}
l_RwtLoc=value;
}
void __fastcall TKSRwt:: SetRwtUnit(AnsiString value)
{
if(value.IsEmpty())
throw Exception("计量单位编码不能为空");
if(value.Length()>18)
throw Exception("计量单位编码长度不能超过18");
if (value!=l_RwtUnit)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("SELECT UnitCode FROM sdUnit where UnitCode='"+value+"'");
l_Query->Open();
if(l_Query->RecordCount<1 )
{
l_Query->Close();
throw Exception("计量单位编码'"+value+"'未定义");
}
l_Query->Close();
}
l_RwtUnit=value;
}
void __fastcall TKSRwt:: SetRwtTime(double value)
{
if(value<0)
throw Exception("定额工时不能小于零");
l_RwtTime=value;
}
void __fastcall TKSRwt:: SetRwtEdate(AnsiString value)
{
if(value.IsEmpty())
throw Exception("生效日期不能为空");
if(value.Length()>10)
throw Exception("生效日期长度不能大于10");
l_RwtEdate=Validate(value);
}
void __fastcall TKSRwt:: SetRwtIdate(AnsiString value)
{
AnsiString TemDate;
if(l_RwtEdate.IsEmpty())
throw Exception("生效日期不能为空");
if(value.IsEmpty()==false)
{
if(value.Length()>10)
throw Exception("失效日期长度不能大于10");
TemDate=Validate(value);
if(TemDate<=l_RwtEdate)
throw Exception("生效日期不能大于等于失效日期");
l_RwtIdate=Validate(value);
}
else
l_RwtIdate="";
}
void __fastcall TKSRwt:: SetRwtUser(AnsiString value)
{
if(value.IsEmpty())
throw Exception("操作员编码不能为空");
if(value.Length()>18)
throw Exception("操作员编码长度不能大于18");
if(value!=l_RwtUser)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("SELECT UserCODE FROM SDUser WHERE UserCODE='" +value+"'");
l_Query->Open();
if(l_Query->RecordCount<=0)
{
l_Query->Close();
throw Exception("操作员编码"+value+"'未定义");
}
l_Query->Close();
}
l_RwtUser=value;
}
//---------------------------------------------------------------------------
AnsiString TKSRwt::GetFieldValue(euRwt sdFieldName)
{
switch(sdFieldName)
{
case fiRwtGoods:
return RwtGoods;
case fiRwtLoc:
return RwtLoc;
case fiRwtUnit:
return RwtUnit;
case fiRwtTime:
return RwtTime;
case fiRwtEdate:
return RwtEdate;
case fiRwtIdate:
return RwtIdate;
case fiRwtUser:
return RwtUser;
default:
throw Exception("当前未定义可取值");
}
}
//---------------------------------------------------------------------------
void TKSRwt::SetFieldValue(euRwt sdFieldName, AnsiString value)
{
switch(sdFieldName)
{
case fiRwtGoods:
RwtGoods=value;
break;
case fiRwtLoc:
RwtLoc=value;
break;
case fiRwtUnit:
RwtUnit=value;
break;
case fiRwtTime:
RwtTime=value.ToDouble();
break;
case fiRwtEdate:
RwtEdate=value;
break;
case fiRwtIdate:
RwtIdate=value;
break;
case fiRwtUser:
RwtUser=value;
break;
default:
throw Exception("当前字段未定义可赋值");
}
}
//---------------------------------------------------------------------------
TKSRwt::TKSRwt(TDataComm *DC)
:TKSStandard(DC)
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdRwt";
FilterString="";
OrderString="RwtGoods,RwtLoc";
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TKSRwt::TKSRwt()
:TKSStandard()
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdRwt";
FilterString="";
OrderString="RwtGoods,RwtLoc";
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TKSRwt::~TKSRwt()
{
try{
}
catch(...)
{
throw Exception("析构函数出错");
}
}
//---------------------------------------------------------------------------
void TKSRwt::BackupValue()
{
b_RwtGoods=l_RwtGoods;
b_RwtLoc=l_RwtLoc;
b_RwtUnit=l_RwtUnit;
b_RwtTime=l_RwtTime;
b_RwtEdate=l_RwtEdate;
b_RwtIdate=l_RwtIdate;
b_RwtUser=l_RwtUser;
}
//---------------------------------------------------------------------------
void TKSRwt::RestoreValue()
{
l_RwtGoods=b_RwtGoods;
l_RwtLoc=b_RwtLoc;
l_RwtUnit=b_RwtUnit;
l_RwtTime=b_RwtTime;
l_RwtEdate=b_RwtEdate;
l_RwtIdate=b_RwtIdate;
l_RwtUser=b_RwtUser;
}
//---------------------------------------------------------------------------
void TKSRwt::EmptyValue(int Index)
{
switch(Index)
{
case 0:
l_RwtGoods="";
l_RwtLoc="";
l_RwtUnit="";
l_RwtTime=0;
l_RwtEdate="";
l_RwtIdate="";
l_RwtUser="";
break;
case 1:
b_RwtGoods="";
b_RwtLoc="";
b_RwtUnit="";
b_RwtTime=0;
b_RwtEdate="";
b_RwtIdate="";
b_RwtUser="";
break;
}
}
//---------------------------------------------------------------------------
void TKSRwt::BatchLetValue()
{
l_RwtGoods=l_Query->FieldValues["RwtGoods"];
l_RwtLoc=l_Query->FieldValues["RwtLoc"];
l_RwtUnit=l_Query->FieldValues["RwtUnit"];
l_RwtTime=l_Query->FieldValues["RwtTime"];
l_RwtEdate=l_Query->FieldValues["RwtEdate"];
l_RwtIdate=l_Query->FieldValues["RwtIdate"];
l_RwtUser=l_Query->FieldValues["RwtUser"];
BackupValue();
}
//---------------------------------------------------------------------------
void TKSRwt::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(l_RwtGoods.IsEmpty()==true)
throw Exception("产品编码不能为空!");
l_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
RecordDoubuleCh();
l_StoredProc->ProcedureName="sdRwt_Insert";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@RwtGoods",ftString,pdInput,18,l_RwtGoods);
l_StoredProc->Parameters->CreateParameter("@RwtLoc",ftString,pdInput,18,l_RwtLoc);
l_StoredProc->Parameters->CreateParameter("@RwtUnit",ftString,pdInput,18,l_RwtUnit);
l_StoredProc->Parameters->CreateParameter("@RwtTime",ftFloat,pdInput,12,l_RwtTime);
l_StoredProc->Parameters->CreateParameter("@RwtEdate",ftString,pdInput,10,l_RwtEdate);
l_StoredProc->Parameters->CreateParameter("@RwtIdate",ftString,pdInput,10,l_RwtIdate);
l_StoredProc->Parameters->CreateParameter("@RwtUser",ftString,pdInput,18,l_RwtUser);
l_StoredProc->ExecProc();
l_StoredProc->Close();
}
else
{
if(l_RwtGoods!=b_RwtGoods)
RecordDoubuleCh();
l_StoredProc->ProcedureName="sdRwt_Update";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@W_RwtGoods",ftString,pdInput,18,b_RwtGoods);
l_StoredProc->Parameters->CreateParameter("@W_RwtLoc",ftString,pdInput,18,b_RwtLoc);
l_StoredProc->Parameters->CreateParameter("@RwtGoods",ftString,pdInput,18,l_RwtGoods);
l_StoredProc->Parameters->CreateParameter("@RwtLoc",ftString,pdInput,18,l_RwtLoc);
l_StoredProc->Parameters->CreateParameter("@RwtUnit",ftString,pdInput,18,l_RwtUnit);
l_StoredProc->Parameters->CreateParameter("@RwtTime",ftFloat,pdInput,12,l_RwtTime);
l_StoredProc->Parameters->CreateParameter("@RwtEdate",ftString,pdInput,10,l_RwtEdate);
l_StoredProc->Parameters->CreateParameter("@RwtIdate",ftString,pdInput,10,l_RwtIdate);
l_StoredProc->Parameters->CreateParameter("@RwtUser",ftString,pdInput,18,l_RwtUser);
l_StoredProc->ExecProc();
l_StoredProc->Close();
}
TKSRwt *p=new TKSRwt();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->RwtGoods+p->RwtLoc);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->RwtGoods+p->RwtLoc,this->b_RwtGoods+this->b_RwtLoc);
}
}
//---------------------------------------------------------------------------
void TKSRwt::RecordDoubuleCh()
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("SELECT RWTGOODS,RWTLOC FROM sdrwt WHERE RWTGOODS='"+l_RwtGoods+"' and RWTLOC='"+l_RwtLoc+"'");
l_Query->Open();
if(l_Query->RecordCount>0)
{
l_Query->Close();
throw Exception("该记录已存在! 请重新输入");
}
}
void TKSRwt::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(l_RwtGoods.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
l_StoredProc->Close();
l_StoredProc->ProcedureName="sdRwt_Delete";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@W_RwtGoods",ftString,pdInput,18,b_RwtGoods);
l_StoredProc->Parameters->CreateParameter("@W_RwtLoc",ftString,pdInput,18,b_RwtLoc);
l_StoredProc->ExecProc();
l_StoredProc->Close();
DeleteRecord(this->b_RwtGoods+this->b_RwtLoc);
}
//---------------------------------------------------------------------------
void TKSRwt::Assign(TKSRwt *p)
{
this->SetActionID(p->CurStatus);
this->l_RwtGoods=p->l_RwtGoods;
this->l_RwtLoc=p->l_RwtLoc;
this->l_RwtUnit=p->l_RwtUnit;
this->l_RwtTime=p->l_RwtTime;
this->l_RwtEdate=p->l_RwtEdate;
this->l_RwtIdate=p->l_RwtIdate;
this->l_RwtUser=p->l_RwtUser;
this->BackupValue();
}
//---------------------------------------------------------------------------
void TKSRwt::AssignValue()
{
TKSRwt *p=(TKSRwt *)Records(CurRecNo);
Assign(p);
}
//---------------------------------------------------------------------------
int TKSRwt::Query()
{
AnsiString l_SqlStr;
l_SqlStr=QueryString;
if(FilterString.IsEmpty()==false)
l_SqlStr=l_SqlStr+" where "+FilterString;
if(OrderString.IsEmpty()==false)
l_SqlStr=l_SqlStr+" Order by "+OrderString;
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add(l_SqlStr);
l_Query->Open();
ClearRecord();
if(l_Query->RecordCount>0)
{
l_Query->First();
while(!l_Query->Eof)
{
BatchLetValue();
TKSRwt *p=new TKSRwt();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->RwtGoods+p->RwtLoc);
l_Query->Next();
}
MoveFirst();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -