?? cmhdl.cpp
字號:
{
if(value.IsEmpty()==true)
throw Exception("財務月份不能為空");
if(value.Length()>8)
throw Exception("財務月份不能超過8");
if (value!=m_ScmbhFmonth)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT Fcmonth FROM sdFc Where Fcmonth='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("財務月份 "+value+" 未定義");
}
m_Query->Close();
}
m_ScmbhFmonth=value;
}
void __fastcall TsdScmbh:: SetScmbhCheck(int value)
{
if(value!=0 && value!=1)
throw Exception("審核標志只能取值0-未審核1-已審");
m_ScmbhCheck=value;
}
void __fastcall TsdScmbh:: SetScmbhChecker(AnsiString value)
{
if(m_ScmbhCheck==1)
{
if(value.IsEmpty())
throw Exception("審核員代碼不能為空");
if(value.Length()>18)
throw Exception("審核員代碼長度不能大于18");
if(value!=m_ScmbhChecker)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select usercode from sduser where usercode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("審核員代碼未定義或沒有審核權限");
}
m_Query->Close();
}
m_ScmbhChecker=value;
}
else
m_ScmbhChecker="";
}
void __fastcall TsdScmbh:: SetScmbhCheckDate(AnsiString value)
{
if(m_ScmbhCheck==1)
{
if(value.IsEmpty())
throw Exception("審核日期不能為空");
m_ScmbhCheckDate=Validate(value);
}
else
m_ScmbhCheckDate="";
}
void __fastcall TsdScmbh:: SetScmbhUser(AnsiString value)
{
if(value.IsEmpty())
throw Exception("操作員代碼不能為空");
if(value.Length()>18)
throw Exception("操作員代碼長度不能大于18");
if(value!=m_ScmbhUser)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select usercode from sduser where usercode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("操作員代碼:"+value+"未定義");
}
m_Query->Close();
}
m_ScmbhUser=value;
}
void __fastcall TsdScmbh:: SetScmbhDesc(AnsiString value)
{
if(value.IsEmpty())
throw Exception("更改原因不能為空");
if(value.Length()>40)
throw Exception("更改原因長度不能大于40");
m_ScmbhDesc=value;
}
//---------------------------------------------------------------------------
AnsiString TsdScmbh::GetFieldValue(euScmbh sdFieldName)
{
switch(sdFieldName)
{
case fiScmbhCode:
return ScmbhCode;
case fiScmbhDate:
return ScmbhDate;
case fiScmbhFmonth:
return ScmbhFmonth;
case fiScmbhCheck:
return ScmbhCheck;
case fiScmbhChecker:
return ScmbhChecker;
case fiScmbhCheckDate:
return ScmbhCheckDate;
case fiScmbhUser:
return ScmbhUser;
case fiScmbhDesc:
return ScmbhDesc;
case fiScmbhSysDate:
return ScmbhSysDate;
default:
throw Exception("當前未定義可取值");
}
}
//---------------------------------------------------------------------------
void TsdScmbh::SetFieldValue(euScmbh sdFieldName, AnsiString value)
{
switch(sdFieldName)
{
case fiScmbhCode:
ScmbhCode=value;
break;
case fiScmbhDate:
ScmbhDate=value;
break;
case fiScmbhFmonth:
ScmbhFmonth=value;
break;
case fiScmbhCheck:
ScmbhCheck=value.ToInt();
break;
case fiScmbhChecker:
ScmbhChecker=value;
break;
case fiScmbhCheckDate:
ScmbhCheckDate=value;
break;
case fiScmbhUser:
ScmbhUser=value;
break;
case fiScmbhDesc:
ScmbhDesc=value;
break;
default:
throw Exception("當前字段未定義可賦值");
}
}
//---------------------------------------------------------------------------
TsdScmbh::TsdScmbh(TDataComm *DC)
:TsdHead(DC)
{
try
{
m_sdScmbd=NULL;
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdScmbh";
FilterString="";
OrderString="ScmbhCode";
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TsdScmbh::TsdScmbh()
:TsdHead()
{
try
{
m_sdScmbd=NULL;
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdScmbh";
FilterString="";
OrderString="ScmbhCode";
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TsdScmbh::~TsdScmbh()
{
try{
for(int i=0;i<this->Count;i++)
{
this->LocateByIndex(i);
this->AssignValue();
delete m_sdScmbd;
}
}
catch(...)
{
throw Exception("析構函數出錯");
}
}
//---------------------------------------------------------------------------
void TsdScmbh::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("當前不是編輯狀態,不能進行存盤操作!");
if(m_ScmbhCode.IsEmpty()==true)
throw Exception("更改單號不能為空!");
if(ItemCount<=0)
throw Exception("單沒有定義明細字段");
m_StoredProc->Close();
switch(CurStatus)
{
case 2:
case 4:
m_StoredProc->ProcedureName="sdScmbh_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@ScmbhCode",ftString,pdInputOutput,18,m_ScmbhCode);
m_StoredProc->Parameters->CreateParameter("@ScmbhDate",ftString,pdInput,10,m_ScmbhDate);
m_StoredProc->Parameters->CreateParameter("@ScmbhFmonth",ftString,pdInput,6,m_ScmbhFmonth);
m_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftInteger,pdInput,1,m_ScmbhCheck);
m_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,18,m_ScmbhChecker);
m_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,m_ScmbhCheckDate);
m_StoredProc->Parameters->CreateParameter("@ScmbhUser",ftString,pdInput,18,m_ScmbhUser);
m_StoredProc->Parameters->CreateParameter("@ScmbhDesc",ftString,pdInput,255,m_ScmbhDesc);
m_StoredProc->Parameters->CreateParameter("@ScmbhSysDate",ftString,pdOutput,40,m_ScmbhSysDate);
m_StoredProc->ExecProc();
m_StoredProc->Close();
m_ScmbhSysDate=m_StoredProc->Parameters->ParamValues["@ScmbhSysDate"];
m_ScmbhCode=m_StoredProc->Parameters->ParamValues["@ScmbhCode"];
for(int i=0;i<ItemCount;i++)
{
LocateItemByIndex(i);
m_sdScmbd->SetFieldValue(fiScmbdCode,m_ScmbhCode);
AddToObject();
m_sdScmbd->Update();
}
break;
case 3:
m_StoredProc->ProcedureName="sdScmbh_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,18,b_ScmbhCode);
m_StoredProc->Parameters->CreateParameter("@ScmbhCode",ftString,pdInput,18,m_ScmbhCode);
m_StoredProc->Parameters->CreateParameter("@ScmbhDate",ftString,pdInput,10,m_ScmbhDate);
m_StoredProc->Parameters->CreateParameter("@ScmbhFmonth",ftString,pdInput,6,m_ScmbhFmonth);
m_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftInteger,pdInput,1,m_ScmbhCheck);
m_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,18,m_ScmbhChecker);
m_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,m_ScmbhCheckDate);
m_StoredProc->Parameters->CreateParameter("@ScmbhUser",ftString,pdInput,18,m_ScmbhUser);
m_StoredProc->Parameters->CreateParameter("@ScmbhDesc",ftString,pdInput,255,m_ScmbhDesc);
m_StoredProc->Parameters->CreateParameter("@ScmbhSysDate",ftString,pdOutput,40,m_ScmbhSysDate);
m_StoredProc->ExecProc();
m_StoredProc->Close();
m_ScmbhSysDate=m_StoredProc->Parameters->ParamValues["@ScmbhSysDate"];
break;
case 5:
case 6:
for(int i=0;i<ItemCount;i++)
{
LocateItemByIndex(i);
if(m_sdScmbd->CurStatus==2||m_sdScmbd->CurStatus==3)
m_sdScmbd->Update();
}
break;
}
TsdScmbh *p=new TsdScmbh();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->ScmbhCode);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->ScmbhCode,this->ScmbhCode);
}
}
//---------------------------------------------------------------------------
void TsdScmbh::Check(int IsCheck)
{
if(this->Count>0)
{
try
{
m_StoredProc->ProcedureName="sdScmbh_Check";
m_StoredProc->Parameters->Clear();
if(IsCheck==1)
{
ScmbhCheck=1;
ScmbhChecker=g_sdUserCode;
ScmbhCheckDate=g_sdCurDate;
m_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,20,b_ScmbhCode);
m_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftSmallint,pdInput,2,1);
m_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,20,g_sdUserCode);
m_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,g_sdCurDate);
m_StoredProc->ExecProc();
m_StoredProc->Close();
}
else
{
ScmbhCheck=0;
ScmbhChecker="";
ScmbhCheckDate="";
AnsiString temp="";
m_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,20,b_ScmbhCode);
m_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftSmallint,pdInput,2,0);
m_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,20,temp);
m_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,temp);
m_StoredProc->ExecProc();
m_StoredProc->Close();
}
TsdScmbh *p=(TsdScmbh*)Records(CurRecNo);
p->Assign(this);
BackupValue();
}
catch(...)
{
m_ScmbhCheck=b_ScmbhCheck;
m_ScmbhChecker=b_ScmbhChecker;
m_ScmbhCheckDate=b_ScmbhCheckDate;
throw Exception("審核/反審核失敗");
}
}
}
//---------------------------------------------------------------------------
void TsdScmbh::Delete()
{
if(CurStatus!=1)
throw Exception("當前狀態不能進行刪除操作!");
if(m_ScmbhCode.IsEmpty()==true)
throw Exception("當前沒有記錄可以刪除!");
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdScmbh_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,18,b_ScmbhCode);
m_StoredProc->ExecProc();
m_StoredProc->Close();
delete m_sdScmbd;
DeleteRecord(this->b_ScmbhCode);
}
//---------------------------------------------------------------------------
void TsdScmbh::AddItem()
{
m_sdScmbd->AddNew();
if(CurStatus!=2)
SetActionID(5);
}
//---------------------------------------------------------------------------
void TsdScmbh::InsertItem()
{
/* m_sdField->AddNew();
TsdField *p=new TsdField();
p->Assign(m_sdField);
if(CurStatus==2)
m_sdField->AddRecord((void *)p,p->GetFieldValue(fiFieldName));
else
m_sdField->Update();
*/
}
//---------------------------------------------------------------------------
void TsdScmbh::EditItem()
{
m_sdScmbd->Edit();
if(CurStatus==1)
{
SetActionID(6);
}
}
//---------------------------------------------------------------------------
void TsdScmbh::DeleteItem()
{
if(CurStatus==2||CurStatus==5)
m_sdScmbd->DeleteRecord(m_sdScmbd->Key);
else
m_sdScmbd->Delete();
}
//---------------------------------------------------------------------------
void TsdScmbh::RemoveItem()
{
if(CurStatus==2)
m_sdScmbd->RemoveRecord(m_sdScmbd->Index);
else
m_sdScmbd->Delete();
}
//---------------------------------------------------------------------------
void TsdScmbh::ClearItem()
{
int iCount;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -