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