?? cmhdl.cpp
字號:
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("物料編碼 "+value+" 不存在或未初始化");
}
m_Query->Close();
}
if(value!=m_AdjCodGoods)
{
if(this->FindKey(value))
throw Exception("物料 "+AnsiString(value)+" 已調整");
}
m_AdjCodGoods=value;
}
void __fastcall TsdAdjCod:: SetAdjCodAmt(double value)
{
if (value<0)
throw Exception("調整金額不能小于零");
m_AdjCodAmt=value;
}
void __fastcall TsdAdjCod:: SetAdjCodBatch(AnsiString value)
{
m_Query->Close(); //是否需要批號管理
m_Query->SQL->Clear();
m_Query->SQL->Add("select goodsBatch from sdgoods where goodsCode='"+m_AdjCodGoods+"'");
m_Query->Open();
if(m_Query->RecordCount<1 )
{
m_Query->Close();
if(value.IsEmpty()==false)
throw Exception("物料 "+m_AdjCodGoods+" 不需要批號管理!");
}
else
{
if(value.IsEmpty())
throw Exception("物料 "+m_AdjCodGoods+" 需要批號管理!");
if (value!=m_AdjCodBatch)
{
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<1 )
{
m_Query->Close();
throw Exception("批號 "+value+" 不存在!");
}
m_Query->Close();
}
}
if(value.Length()>18)
throw Exception("批號長度不能超過18");
m_AdjCodBatch=value;
}
void __fastcall TsdAdjCod:: SetAdjCodDesc(AnsiString value)
{
if(value.Length()>40)
throw Exception("備注不能超過40");
m_AdjCodDesc=value;
}
//---------------------------------------------------------------------------
AnsiString TsdAdjCod::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 TsdAdjCod::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 TsdAdjCod::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("當前字段未定義可賦值");
}
}
//---------------------------------------------------------------------------
TsdAdjCod::TsdAdjCod(TDataComm *DC)
:TsdDetail(DC)
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdAdjCod";
FilterString="";
OrderString="AdjCodCode,AdjCodLine";
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TsdAdjCod::TsdAdjCod()
:TsdDetail()
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdAdjCod";
FilterString="";
OrderString="AdjCodCode,AdjCodLine";
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TsdAdjCod::~TsdAdjCod()
{
try{
}
catch(...)
{
throw Exception("析構函數出錯");
}
}
//---------------------------------------------------------------------------
void TsdAdjCod::BackupValue()
{
b_AdjCodCode=m_AdjCodCode;
b_AdjCodLine=m_AdjCodLine;
b_AdjCodGoods=m_AdjCodGoods;
b_AdjCodAmt=m_AdjCodAmt;
b_AdjCodBatch=m_AdjCodBatch;
b_AdjCodDesc=m_AdjCodDesc;
}
//---------------------------------------------------------------------------
void TsdAdjCod::RestoreValue()
{
m_AdjCodCode=b_AdjCodCode;
m_AdjCodLine=b_AdjCodLine;
m_AdjCodGoods=b_AdjCodGoods;
m_AdjCodAmt=b_AdjCodAmt;
m_AdjCodBatch=b_AdjCodBatch;
m_AdjCodDesc=b_AdjCodDesc;
}
//---------------------------------------------------------------------------
void TsdAdjCod::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_AdjCodCode="";
m_AdjCodLine=0;
m_AdjCodGoods="";
m_AdjCodAmt=0;
m_AdjCodBatch="";
m_AdjCodDesc="";
break;
case 1:
b_AdjCodCode="";
b_AdjCodLine=0;
b_AdjCodGoods="";
b_AdjCodAmt=0;
b_AdjCodBatch="";
b_AdjCodDesc="";
break;
}
}
//---------------------------------------------------------------------------
void TsdAdjCod::BatchLetValue()
{
m_AdjCodCode=m_Query->FieldValues["AdjCodCode"];
m_AdjCodLine=m_Query->FieldValues["AdjCodLine"];
m_AdjCodGoods=m_Query->FieldValues["AdjCodGoods"];
m_AdjCodAmt=m_Query->FieldValues["AdjCodAmt"];
m_AdjCodBatch=m_Query->FieldValues["AdjCodBatch"];
m_AdjCodDesc=m_Query->FieldValues["AdjCodDesc"];
BackupValue();
}
//---------------------------------------------------------------------------
void TsdAdjCod::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("當前不是編輯狀態,不能進行存盤操作!");
if(m_AdjCodCode<=0)
throw Exception("單行號不能小于等于零!");
if(m_AdjCodCode.IsEmpty()==true)
throw Exception("單號不能為空!");
m_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
m_StoredProc->ProcedureName="sdAdjcod_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@AdjCodCode",ftString,pdInput,18,m_AdjCodCode);
m_StoredProc->Parameters->CreateParameter("@AdjCodLine",ftInteger,pdInput,10,m_AdjCodLine);
m_StoredProc->Parameters->CreateParameter("@AdjCodGoods",ftString,pdInput,18,m_AdjCodGoods);
m_StoredProc->Parameters->CreateParameter("@AdjCodAmt",ftFloat,pdInput,12,m_AdjCodAmt);
m_StoredProc->Parameters->CreateParameter("@AdjCodBatch",ftString,pdInput,18,m_AdjCodBatch);
m_StoredProc->Parameters->CreateParameter("@AdjCodDesc",ftString,pdInput,40,m_AdjCodDesc);
m_StoredProc->ExecProc();
}
else{
m_StoredProc->ProcedureName="sdAdjcod_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_AdjCodCode",ftString,pdInput,18,b_AdjCodCode);
m_StoredProc->Parameters->CreateParameter("@W_AdjCodGoods",ftString,pdInput,18,b_AdjCodGoods);
m_StoredProc->Parameters->CreateParameter("@AdjCodCode",ftString,pdInput,18,m_AdjCodCode);
m_StoredProc->Parameters->CreateParameter("@AdjCodLine",ftInteger,pdInput,10,m_AdjCodLine);
m_StoredProc->Parameters->CreateParameter("@AdjCodGoods",ftString,pdInput,18,m_AdjCodGoods);
m_StoredProc->Parameters->CreateParameter("@AdjCodAmt",ftFloat,pdInput,12,m_AdjCodAmt);
m_StoredProc->Parameters->CreateParameter("@AdjCodBatch",ftString,pdInput,18,m_AdjCodBatch);
m_StoredProc->Parameters->CreateParameter("@AdjCodDesc",ftString,pdInput,40,m_AdjCodDesc);
m_StoredProc->ExecProc();
}
m_StoredProc->Close();
TsdAdjCod *p=new TsdAdjCod();
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->AdjCodGoods,this->AdjCodGoods);
}
//---------------------------------------------------------------------------
void TsdAdjCod::Delete()
{
if(CurStatus!=1)
throw Exception("當前狀態不能進行刪除操作!");
if(m_AdjCodCode.IsEmpty()==true)
throw Exception("當前沒有記錄可以刪除!");
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdAdjcod_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_AdjCodCode",ftString,pdInput,18,b_AdjCodCode);
m_StoredProc->Parameters->CreateParameter("@W_AdjCodGoods",ftString,pdInput,18,b_AdjCodGoods);
m_StoredProc->ExecProc();
m_StoredProc->Close();
DeleteRecord(this->b_AdjCodGoods);
}
//---------------------------------------------------------------------------
void TsdAdjCod::Assign(TsdAdjCod *p)
{
this->SetActionID(p->CurStatus);
this->m_AdjCodCode=p->m_AdjCodCode;
this->m_AdjCodLine=p->m_AdjCodLine;
this->m_AdjCodGoods=p->m_AdjCodGoods;
this->m_AdjCodAmt=p->m_AdjCodAmt;
this->m_AdjCodBatch=p->m_AdjCodBatch;
this->m_AdjCodDesc=p->m_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 TsdAdjCod::AssignValue()
{
TsdAdjCod *p=(TsdAdjCod *)Records(CurRecNo);
Assign(p);
}
//---------------------------------------------------------------------------
int TsdAdjCod::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();
TsdAdjCod *p=new TsdAdjCod();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->AdjCodGoods);
m_Query->Next();
}
MoveFirst();
}
m_Query->Close();
return Count;
}
//---------------------------------------------------------------------------
bool TsdAdjCod::Find(AnsiString WhereStr)
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表達式不能為空");
m_SqlStr="select * from sdAdjCod 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;
}
}
//**************************************
// TsdScmbh 標準成本更改單頭
//**************************************
//--------------------------------------------------------------
void __fastcall TsdScmbh:: SetScmbhCode(AnsiString value)
{
if(value.IsEmpty())
throw Exception("更改單號不能為空!");
if(value.Length()>18)
throw Exception("更改單號長度不能超過18");
if(value!=m_ScmbhCode)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT ScmbhCODE FROM sdScmbh WHERE ScmbhCODE='" +value+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("更改單號'"+value+"'已存在");
}
m_Query->Close();
}
m_ScmbhCode=value;
}
void __fastcall TsdScmbh:: SetScmbhDate(AnsiString value)
{
if (value.IsEmpty())
throw Exception("更改日期不能為空!");
if(value.Length()>10)
throw Exception("更改日期長度不能大于10");
m_ScmbhDate=Validate(value);
}
void __fastcall TsdScmbh:: SetScmbhFmonth(AnsiString value)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -