📄 imdoc.cpp
字号:
throw Exception("操作来源只能取值:1-采购,2-销售,3-生产,4-库存,5-质检");
m_ImReasonFrom=value;
}
//-------------------------------------------------------------------------
TsdImReason::TsdImReason(TDataComm *DC)
:TsdStandard(DC)
{
try
{
QueryString="SELECT * FROM SDImReason";
FilterString="";
OrderString="IMREASONCODE";
EmptyValue(0);
EmptyValue(1);
}
catch(...)
{
throw Exception("构造函数出错!");
}
}
//-------------------------------------------------------------------------
TsdImReason::TsdImReason()
:TsdStandard()
{
try
{
QueryString="SELECT * FROM SDImReason";
FilterString="";
OrderString="IMREASONCODE";
EmptyValue(0);
EmptyValue(1);
}
catch(...)
{
throw Exception("构造函数出错!");
}
}
//-------------------------------------------------------------------------
AnsiString TsdImReason::GetFieldValue(euImReason sdFieldName)
{
switch(sdFieldName)
{
case fiImReasonCode:
return ImReasonCode;
case fiImReasonDesc:
return ImReasonDesc;
case fiImReasonType:
return AnsiString(ImReasonType);
case fiImReasonFrom:
return AnsiString(ImReasonFrom);
default:
throw Exception("当前字段未定义可取值");
}
}
//-------------------------------------------------------------------------
void TsdImReason::SetFieldValue(euImReason sdFieldName, AnsiString value)
{
switch(sdFieldName)
{
case fiImReasonCode:
ImReasonCode=value;
break;
case fiImReasonDesc:
ImReasonDesc=value;
break;
case fiImReasonType:
ImReasonType=value.ToInt();
break;
case fiImReasonFrom:
ImReasonFrom=value.ToInt();
break;
default:
throw Exception("当前字段未定义可赋值");
}
}
//-------------------------------------------------------------------------
void TsdImReason::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(m_ImReasonCode.IsEmpty()==true)
throw Exception("库存操作原因的编码不能为空!");
m_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
m_StoredProc->ProcedureName="sdImReason_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@ImReasonCode",ftString,pdInput,18,m_ImReasonCode);
m_StoredProc->Parameters->CreateParameter("@ImReasonDesc",ftString,pdInput,80,m_ImReasonDesc);
m_StoredProc->Parameters->CreateParameter("@ImReasonFrom",ftInteger,pdInput,1,m_ImReasonFrom);
m_StoredProc->Parameters->CreateParameter("@ImReasonType",ftInteger,pdInput,1,m_ImReasonType);
m_StoredProc->ExecProc();
}
else
{
m_StoredProc->ProcedureName="sdImReason_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_ImReasonCode",ftString,pdInput,18,b_ImReasonCode);
m_StoredProc->Parameters->CreateParameter("@ImReasonCode",ftString,pdInput,18,m_ImReasonCode);
m_StoredProc->Parameters->CreateParameter("@ImReasonDesc",ftString,pdInput,80,m_ImReasonDesc);
m_StoredProc->Parameters->CreateParameter("@ImReasonFrom",ftInteger,pdInput,1,m_ImReasonFrom);
m_StoredProc->Parameters->CreateParameter("@ImReasonType",ftInteger,pdInput,1,m_ImReasonType);
m_StoredProc->ExecProc();
}
TsdImReason *p=new TsdImReason();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->ImReasonCode);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->ImReasonCode,this->b_ImReasonCode);
}
}
//-------------------------------------------------------------------------
void TsdImReason::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(m_ImReasonCode.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdImReason_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_ImReasonCode",ftString,pdInput,18,b_ImReasonCode);
m_StoredProc->ExecProc();
DeleteRecord(this->b_ImReasonCode);
}
//-------------------------------------------------------------------------
void TsdImReason::BackupValue()
{
b_ImReasonCode=m_ImReasonCode;
b_ImReasonDesc=m_ImReasonDesc;
b_ImReasonType=m_ImReasonType;
b_ImReasonFrom=m_ImReasonFrom;
}
//-------------------------------------------------------------------------
void TsdImReason::RestoreValue()
{
m_ImReasonCode=b_ImReasonCode;
m_ImReasonDesc=b_ImReasonDesc;
m_ImReasonType=b_ImReasonType;
m_ImReasonFrom=b_ImReasonFrom;
}
//-------------------------------------------------------------------------
void TsdImReason::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_ImReasonCode="";
m_ImReasonDesc="";
m_ImReasonType=1;
m_ImReasonFrom=0;
break;
case 1:
b_ImReasonCode="";
b_ImReasonDesc="";
b_ImReasonType=1;
b_ImReasonFrom=0;
break;
}
}
//-------------------------------------------------------------------------
void TsdImReason::BatchLetValue()
{
m_ImReasonCode=m_Query->FieldValues["ImReasonCode"];
m_ImReasonDesc=m_Query->FieldValues["ImReasonDesc"];
m_ImReasonType=m_Query->FieldValues["ImReasonType"];
m_ImReasonFrom=m_Query->FieldValues["ImReasonFrom"];
BackupValue();
}
//-------------------------------------------------------------------------
void TsdImReason::Assign(TsdImReason *p)
{
SetActionID(p->CurStatus);
m_ImReasonCode=p->m_ImReasonCode;
m_ImReasonDesc=p->m_ImReasonDesc;
m_ImReasonType=p->m_ImReasonType;
m_ImReasonFrom=p->m_ImReasonFrom;
BackupValue();
}
//-------------------------------------------------------------------------
void TsdImReason::AssignValue()
{
TsdImReason *p=(TsdImReason *)Records(CurRecNo);
Assign(p);
}
//-------------------------------------------------------------------------
int TsdImReason::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();
TsdImReason *p=new TsdImReason();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->ImReasonCode);
m_Query->Next();
}
MoveFirst();
}
m_Query->Close();
return Count;
}
//-------------------------------------------------------------------------
bool TsdImReason::Find(AnsiString WhereStr)
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空");
m_SqlStr="SELECT * FROM SDImReason 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;
}
}
//-------------------------------------------------------------------------
TsdImReason::~TsdImReason()
{
try
{
}
catch(...)
{
throw Exception("析构函数出错!");
}
}
//-------------------------------------------------------------------------
//////////////////////////////////////////////////////
// (批号编码)Batch implement
//////////////////////////////////////////////////////
void __fastcall TsdBatch::SetBatchCode(AnsiString value)
{
if (value.IsEmpty() )
throw Exception("批号代码不能为空!");
if(value.Length()>18)
throw Exception("批号代码长度不能大于18");
if (value.UpperCase()!=m_BatchCode.UpperCase())
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT BatchCode From SDBatch WHERE BatchCode='" +value+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("批号代码'"+value+"'已存在");
}
m_Query->Close();
}
m_BatchCode=value;
}
//-------------------------------------------------------------------------
void __fastcall TsdBatch::SetBatchDesc(AnsiString value)
{
if(value.IsEmpty())
throw Exception("批号说明不能为空");
if(value.Length()>40)
throw Exception("说明长度不能大于40");
m_BatchDesc=value;
}
//-------------------------------------------------------------------------
void __fastcall TsdBatch::SetBatchQty(double value)
{
if(value<0)
throw Exception("批量不能小于零");
m_BatchQty=value;
}
//-------------------------------------------------------------------------
void __fastcall TsdBatch::SetBatchEffectDate(AnsiString value)
{
if(value.IsEmpty())
throw Exception("生效日期不能为空");
m_BatchEffectDate=Validate(value);
}
//-------------------------------------------------------------------------
void __fastcall TsdBatch::SetBatchAbateDate(AnsiString value)
{
AnsiString TmpDate;
if(m_BatchEffectDate.IsEmpty())
throw Exception("生效日期不能为空");
if(value.IsEmpty()==false)
{
TmpDate=Validate(value);
if(TmpDate<=m_BatchEffectDate)
throw Exception("失效日期不能小于等于生效日期");
}
m_BatchAbateDate=TmpDate;
}
//-------------------------------------------------------------------------
TsdBatch::TsdBatch(TDataComm *DC)
:TsdStandard(DC)
{
try{
QueryString="SELECT * FROM SDBatch";
FilterString="";
OrderString="BatchCode";
EmptyValue(0);
EmptyValue(1);
}
catch(...)
{
throw Exception("构造函数出错!");
}
}
//-------------------------------------------------------------------------
TsdBatch::TsdBatch()
:TsdStandard()
{
try{
QueryString="SELECT * FROM SDBatch";
FilterString="";
OrderString="BatchCode";
EmptyValue(0);
EmptyValue(1);
}
catch(...)
{
throw Exception("构造函数出错!");
}
}
//-------------------------------------------------------------------------
AnsiString TsdBatch::GetFieldValue(euBatch sdFieldName)
{
switch(sdFieldName)
{
case fiBatchCode:
return BatchCode;
case fiBatchDesc:
return BatchDesc;
case fiBatchQty:
return AnsiString(BatchQty);
case fiBatchEffectDate:
return BatchEffectDate;
case fiBatchAbateDate:
return BatchAbateDate;
default:
throw Exception("当前字段未定义可取值");
}
}
//-------------------------------------------------------------------------
void TsdBatch::SetFieldValue(euBatch sdFieldName, AnsiString value)
{
switch(sdFieldName)
{
case fiBatchCode:
BatchCode=value;
break;
case fiBatchDesc:
BatchDesc=value;
break;
case fiBatchQty:
BatchQty=value.ToDouble();
break;
case fiBatchEffectDate:
BatchEffectDate=value;
break;
case fiBatchAbateDate:
BatchAbateDate=value;
break;
default:
throw Exception("当前字段未定义可赋值");
}
}
//-------------------------------------------------------------------------
void TsdBatch::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(m_BatchCode.IsEmpty()==true)
throw Exception("批号的编码不能为空!");
m_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
m_StoredProc->ProcedureName="sdBatch_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@BatchCode",ftString,pdInput,18,m_BatchCode);
m_StoredProc->Parameters->CreateParameter("@BatchDesc",ftString,pdInput,40,m_BatchDesc);
m_StoredProc->Parameters->CreateParameter("@BatchQty",ftFloat,pdInput,12,m_BatchQty);
m_StoredProc->Parameters->CreateParameter("@BatchEffectDate",ftString,pdInput,10,m_BatchEffectDate);
m_StoredProc->Parameters->CreateParameter("@BatchAbateDate",ftString,pdInput,10,m_BatchAbateDate);
m_StoredProc->ExecProc();
}
else
{
m_StoredProc->ProcedureName="sdBatch_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_BatchCode",ftString,pdInput,18,b_BatchCode);
m_StoredProc->Parameters->CreateParameter("@BatchCode",ftString,pdInput,18,m_BatchCode);
m_StoredProc->Parameters->CreateParameter("@BatchDesc",ftString,pdInput,40,m_BatchDesc);
m_StoredProc->Parameters->CreateParameter("@BatchQty",ftFloat,pdInput,12,m_BatchQty);
m_StoredProc->Parameters->CreateParameter("@BatchEffectDate",ftString,pdInput,10,m_BatchEffectDate);
m_StoredProc->Parameters->CreateParameter("@BatchAbateDate",ftString,pdInput,10,m_BatchAbateDate);
m_StoredProc->ExecProc();
}
TsdBatch *p=new TsdBatch();
if(CurStatus==2)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -