📄 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 + -