📄 cmhdl.cpp
字号:
if(l_Query->RecordCount<=0)
{
l_Query->Close();
throw Exception("物料编码 "+value+" 不存在或未初始化");
}
l_Query->Close();
}
if(value!=l_AdjCodGoods)
{
if(this->FindKey(value))
throw Exception("物料 "+AnsiString(value)+" 已调整");
}
l_AdjCodGoods=value;
}
void __fastcall TKSAdjCod:: SetAdjCodAmt(double value)
{
if (value<0)
throw Exception("调整金额不能小于零");
l_AdjCodAmt=value;
}
void __fastcall TKSAdjCod:: SetAdjCodBatch(AnsiString value)
{
l_Query->Close(); //是否需要批号管理
l_Query->SQL->Clear();
l_Query->SQL->Add("select goodsBatch from sdgoods where goodsCode='"+l_AdjCodGoods+"'");
l_Query->Open();
if(l_Query->RecordCount<1 )
{
l_Query->Close();
if(value.IsEmpty()==false)
throw Exception("物料 "+l_AdjCodGoods+" 不需要批号管理!");
}
else
{
if(value.IsEmpty())
throw Exception("物料 "+l_AdjCodGoods+" 需要批号管理!");
if (value!=l_AdjCodBatch)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("SELECT BatchCode FROM sdBatch where BatchCode='"+value+"'");
l_Query->Open();
if(l_Query->RecordCount<1 )
{
l_Query->Close();
throw Exception("批号 "+value+" 不存在!");
}
l_Query->Close();
}
}
if(value.Length()>18)
throw Exception("批号长度不能超过18");
l_AdjCodBatch=value;
}
void __fastcall TKSAdjCod:: SetAdjCodDesc(AnsiString value)
{
if(value.Length()>40)
throw Exception("备注不能超过40");
l_AdjCodDesc=value;
}
//---------------------------------------------------------------------------
AnsiString TKSAdjCod::GetFieldValue(euAdjCod sdFieldName)
{
switch(sdFieldName)
{
case fiAdjCodCode:
return AdjCodCode;
case fiAdjCodLine:
return AdjCodLine;
case fiAdjCodGoods:
return AdjCodGoods;
case fiAdjCodAmt:
return AdjCodAmt;
case fiAdjCodBatch:
return AdjCodBatch;
case fiAdjCodDesc:
return AdjCodDesc;
default:
throw Exception("当前未定义可取值");
}
}
//---------------------------------------------------------------------------
AnsiString TKSAdjCod::GetOldFieldValue(euAdjCod sdFieldName)
{
switch(sdFieldName)
{
case fiAdjCodCode:
return b_AdjCodCode;
case fiAdjCodLine:
return b_AdjCodLine;
case fiAdjCodGoods:
return b_AdjCodGoods;
case fiAdjCodAmt:
return b_AdjCodAmt;
case fiAdjCodBatch:
return b_AdjCodBatch;
case fiAdjCodDesc:
return b_AdjCodDesc;
default:
throw Exception("当前未定义可取值");
}
}
//---------------------------------------------------------------------------
void TKSAdjCod::SetFieldValue(euAdjCod sdFieldName, AnsiString value)
{
switch(sdFieldName)
{
case fiAdjCodCode:
AdjCodCode=value;
break;
case fiAdjCodLine:
AdjCodLine=value.ToInt();
break;
case fiAdjCodGoods:
AdjCodGoods=value;
break;
case fiAdjCodAmt:
AdjCodAmt=value.ToDouble();
break;
case fiAdjCodBatch:
AdjCodBatch=value;
break;
case fiAdjCodDesc:
AdjCodDesc=value;
break;
default:
throw Exception("当前字段未定义可赋值");
}
}
//---------------------------------------------------------------------------
TKSAdjCod::TKSAdjCod(TDataComm *DC)
:TKSDetail(DC)
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdAdjCod";
FilterString="";
OrderString="AdjCodCode,AdjCodLine";
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TKSAdjCod::TKSAdjCod()
:TKSDetail()
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdAdjCod";
FilterString="";
OrderString="AdjCodCode,AdjCodLine";
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TKSAdjCod::~TKSAdjCod()
{
try{
}
catch(...)
{
throw Exception("析构函数出错");
}
}
//---------------------------------------------------------------------------
void TKSAdjCod::BackupValue()
{
b_AdjCodCode=l_AdjCodCode;
b_AdjCodLine=l_AdjCodLine;
b_AdjCodGoods=l_AdjCodGoods;
b_AdjCodAmt=l_AdjCodAmt;
b_AdjCodBatch=l_AdjCodBatch;
b_AdjCodDesc=l_AdjCodDesc;
}
//---------------------------------------------------------------------------
void TKSAdjCod::RestoreValue()
{
l_AdjCodCode=b_AdjCodCode;
l_AdjCodLine=b_AdjCodLine;
l_AdjCodGoods=b_AdjCodGoods;
l_AdjCodAmt=b_AdjCodAmt;
l_AdjCodBatch=b_AdjCodBatch;
l_AdjCodDesc=b_AdjCodDesc;
}
//---------------------------------------------------------------------------
void TKSAdjCod::EmptyValue(int Index)
{
switch(Index)
{
case 0:
l_AdjCodCode="";
l_AdjCodLine=0;
l_AdjCodGoods="";
l_AdjCodAmt=0;
l_AdjCodBatch="";
l_AdjCodDesc="";
break;
case 1:
b_AdjCodCode="";
b_AdjCodLine=0;
b_AdjCodGoods="";
b_AdjCodAmt=0;
b_AdjCodBatch="";
b_AdjCodDesc="";
break;
}
}
//---------------------------------------------------------------------------
void TKSAdjCod::BatchLetValue()
{
l_AdjCodCode=l_Query->FieldValues["AdjCodCode"];
l_AdjCodLine=l_Query->FieldValues["AdjCodLine"];
l_AdjCodGoods=l_Query->FieldValues["AdjCodGoods"];
l_AdjCodAmt=l_Query->FieldValues["AdjCodAmt"];
l_AdjCodBatch=l_Query->FieldValues["AdjCodBatch"];
l_AdjCodDesc=l_Query->FieldValues["AdjCodDesc"];
BackupValue();
}
//---------------------------------------------------------------------------
void TKSAdjCod::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(l_AdjCodCode<=0)
throw Exception("单行号不能小于等于零!");
if(l_AdjCodCode.IsEmpty()==true)
throw Exception("单号不能为空!");
l_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
l_StoredProc->ProcedureName="sdAdjcod_Insert";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@AdjCodCode",ftString,pdInput,18,l_AdjCodCode);
l_StoredProc->Parameters->CreateParameter("@AdjCodLine",ftInteger,pdInput,10,l_AdjCodLine);
l_StoredProc->Parameters->CreateParameter("@AdjCodGoods",ftString,pdInput,18,l_AdjCodGoods);
l_StoredProc->Parameters->CreateParameter("@AdjCodAmt",ftFloat,pdInput,12,l_AdjCodAmt);
l_StoredProc->Parameters->CreateParameter("@AdjCodBatch",ftString,pdInput,18,l_AdjCodBatch);
l_StoredProc->Parameters->CreateParameter("@AdjCodDesc",ftString,pdInput,40,l_AdjCodDesc);
l_StoredProc->ExecProc();
}
else{
l_StoredProc->ProcedureName="sdAdjcod_Update";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@W_AdjCodCode",ftString,pdInput,18,b_AdjCodCode);
l_StoredProc->Parameters->CreateParameter("@W_AdjCodGoods",ftString,pdInput,18,b_AdjCodGoods);
l_StoredProc->Parameters->CreateParameter("@AdjCodCode",ftString,pdInput,18,l_AdjCodCode);
l_StoredProc->Parameters->CreateParameter("@AdjCodLine",ftInteger,pdInput,10,l_AdjCodLine);
l_StoredProc->Parameters->CreateParameter("@AdjCodGoods",ftString,pdInput,18,l_AdjCodGoods);
l_StoredProc->Parameters->CreateParameter("@AdjCodAmt",ftFloat,pdInput,12,l_AdjCodAmt);
l_StoredProc->Parameters->CreateParameter("@AdjCodBatch",ftString,pdInput,18,l_AdjCodBatch);
l_StoredProc->Parameters->CreateParameter("@AdjCodDesc",ftString,pdInput,40,l_AdjCodDesc);
l_StoredProc->ExecProc();
}
l_StoredProc->Close();
TKSAdjCod *p=new TKSAdjCod();
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->AdjCodGoods,this->AdjCodGoods);
}
//---------------------------------------------------------------------------
void TKSAdjCod::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(l_AdjCodCode.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
l_StoredProc->Close();
l_StoredProc->ProcedureName="sdAdjcod_Delete";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@W_AdjCodCode",ftString,pdInput,18,b_AdjCodCode);
l_StoredProc->Parameters->CreateParameter("@W_AdjCodGoods",ftString,pdInput,18,b_AdjCodGoods);
l_StoredProc->ExecProc();
l_StoredProc->Close();
DeleteRecord(this->b_AdjCodGoods);
}
//---------------------------------------------------------------------------
void TKSAdjCod::Assign(TKSAdjCod *p)
{
this->SetActionID(p->CurStatus);
this->l_AdjCodCode=p->l_AdjCodCode;
this->l_AdjCodLine=p->l_AdjCodLine;
this->l_AdjCodGoods=p->l_AdjCodGoods;
this->l_AdjCodAmt=p->l_AdjCodAmt;
this->l_AdjCodBatch=p->l_AdjCodBatch;
this->l_AdjCodDesc=p->l_AdjCodDesc;
if(CurStatus==3)
{
this->b_AdjCodCode=p->b_AdjCodCode;
this->b_AdjCodLine=p->b_AdjCodLine;
this->b_AdjCodGoods=p->b_AdjCodGoods;
this->b_AdjCodAmt=p->b_AdjCodAmt;
this->b_AdjCodBatch=p->b_AdjCodBatch;
this->b_AdjCodDesc=p->b_AdjCodDesc;
}
else
this->BackupValue();
}
//---------------------------------------------------------------------------
void TKSAdjCod::AssignValue()
{
TKSAdjCod *p=(TKSAdjCod *)Records(CurRecNo);
Assign(p);
}
//---------------------------------------------------------------------------
int TKSAdjCod::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();
TKSAdjCod *p=new TKSAdjCod();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->AdjCodGoods);
l_Query->Next();
}
MoveFirst();
}
l_Query->Close();
return Count;
}
//---------------------------------------------------------------------------
bool TKSAdjCod::Find(AnsiString WhereStr)
{
AnsiString l_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空");
l_SqlStr="select * from sdAdjCod 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;
}
}
//**************************************
// TKSScmbh 标准成本更改单头
//**************************************
//--------------------------------------------------------------
void __fastcall TKSScmbh:: SetScmbhCode(AnsiString value)
{
if(value.IsEmpty())
throw Exception("更改单号不能为空!");
if(value.Length()>18)
throw Exception("更改单号长度不能超过18");
if(value!=l_ScmbhCode)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("SELECT ScmbhCODE FROM sdScmbh WHERE ScmbhCODE='" +value+"'");
l_Query->Open();
if(l_Query->RecordCount>0)
{
l_Query->Close();
throw Exception("更改单号'"+value+"'已存在");
}
l_Query->Close();
}
l_ScmbhCode=value;
}
void __fastcall TKSScmbh:: SetScmbhDate(AnsiString value)
{
if (value.IsEmpty())
throw Exception("更改日期不能为空!");
if(value.Length()>10)
throw Exception("更改日期长度不能大于10");
l_ScmbhDate=Validate(value);
}
void __fastcall TKSScmbh:: SetScmbhFmonth(AnsiString value)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -