📄 cmhdl.cpp
字号:
{
if(value.IsEmpty()==true)
throw Exception("财务月份不能为空");
if(value.Length()>8)
throw Exception("财务月份不能超过8");
if (value!=l_ScmbhFmonth)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("SELECT Fcmonth FROM sdFc Where Fcmonth='"+value+"'");
l_Query->Open();
if(l_Query->RecordCount<=0)
{
l_Query->Close();
throw Exception("财务月份 "+value+" 未定义");
}
l_Query->Close();
}
l_ScmbhFmonth=value;
}
void __fastcall TKSScmbh:: SetScmbhCheck(int value)
{
if(value!=0 && value!=1)
throw Exception("审核标志只能取值0-未审核1-已审");
l_ScmbhCheck=value;
}
void __fastcall TKSScmbh:: SetScmbhChecker(AnsiString value)
{
if(l_ScmbhCheck==1)
{
if(value.IsEmpty())
throw Exception("审核员代码不能为空");
if(value.Length()>18)
throw Exception("审核员代码长度不能大于18");
if(value!=l_ScmbhChecker)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("select usercode from sduser where usercode='"+value+"'");
l_Query->Open();
if(l_Query->RecordCount<=0)
{
l_Query->Close();
throw Exception("审核员代码未定义或没有审核权限");
}
l_Query->Close();
}
l_ScmbhChecker=value;
}
else
l_ScmbhChecker="";
}
void __fastcall TKSScmbh:: SetScmbhCheckDate(AnsiString value)
{
if(l_ScmbhCheck==1)
{
if(value.IsEmpty())
throw Exception("审核日期不能为空");
l_ScmbhCheckDate=Validate(value);
}
else
l_ScmbhCheckDate="";
}
void __fastcall TKSScmbh:: SetScmbhUser(AnsiString value)
{
if(value.IsEmpty())
throw Exception("操作员代码不能为空");
if(value.Length()>18)
throw Exception("操作员代码长度不能大于18");
if(value!=l_ScmbhUser)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("select usercode from sduser where usercode='"+value+"'");
l_Query->Open();
if(l_Query->RecordCount<=0)
{
l_Query->Close();
throw Exception("操作员代码:"+value+"未定义");
}
l_Query->Close();
}
l_ScmbhUser=value;
}
void __fastcall TKSScmbh:: SetScmbhDesc(AnsiString value)
{
if(value.IsEmpty())
throw Exception("更改原因不能为空");
if(value.Length()>40)
throw Exception("更改原因长度不能大于40");
l_ScmbhDesc=value;
}
//---------------------------------------------------------------------------
AnsiString TKSScmbh::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 TKSScmbh::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("当前字段未定义可赋值");
}
}
//---------------------------------------------------------------------------
TKSScmbh::TKSScmbh(TDataComm *DC)
:TKSHead(DC)
{
try
{
l_sdScmbd=NULL;
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdScmbh";
FilterString="";
OrderString="ScmbhCode";
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TKSScmbh::TKSScmbh()
:TKSHead()
{
try
{
l_sdScmbd=NULL;
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdScmbh";
FilterString="";
OrderString="ScmbhCode";
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TKSScmbh::~TKSScmbh()
{
try{
for(int i=0;i<this->Count;i++)
{
this->LocateByIndex(i);
this->AssignValue();
delete l_sdScmbd;
}
}
catch(...)
{
throw Exception("析构函数出错");
}
}
//---------------------------------------------------------------------------
void TKSScmbh::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(l_ScmbhCode.IsEmpty()==true)
throw Exception("更改单号不能为空!");
if(ItemCount<=0)
throw Exception("单没有定义明细字段");
l_StoredProc->Close();
switch(CurStatus)
{
case 2:
case 4:
l_StoredProc->ProcedureName="sdScmbh_Insert";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@ScmbhCode",ftString,pdInputOutput,18,l_ScmbhCode);
l_StoredProc->Parameters->CreateParameter("@ScmbhDate",ftString,pdInput,10,l_ScmbhDate);
l_StoredProc->Parameters->CreateParameter("@ScmbhFmonth",ftString,pdInput,6,l_ScmbhFmonth);
l_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftInteger,pdInput,1,l_ScmbhCheck);
l_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,18,l_ScmbhChecker);
l_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,l_ScmbhCheckDate);
l_StoredProc->Parameters->CreateParameter("@ScmbhUser",ftString,pdInput,18,l_ScmbhUser);
l_StoredProc->Parameters->CreateParameter("@ScmbhDesc",ftString,pdInput,255,l_ScmbhDesc);
l_StoredProc->Parameters->CreateParameter("@ScmbhSysDate",ftString,pdOutput,40,l_ScmbhSysDate);
l_StoredProc->ExecProc();
l_StoredProc->Close();
l_ScmbhSysDate=l_StoredProc->Parameters->ParamValues["@ScmbhSysDate"];
l_ScmbhCode=l_StoredProc->Parameters->ParamValues["@ScmbhCode"];
for(int i=0;i<ItemCount;i++)
{
LocateItemByIndex(i);
l_sdScmbd->SetFieldValue(fiScmbdCode,l_ScmbhCode);
AddToObject();
l_sdScmbd->Update();
}
break;
case 3:
l_StoredProc->ProcedureName="sdScmbh_Update";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,18,b_ScmbhCode);
l_StoredProc->Parameters->CreateParameter("@ScmbhCode",ftString,pdInput,18,l_ScmbhCode);
l_StoredProc->Parameters->CreateParameter("@ScmbhDate",ftString,pdInput,10,l_ScmbhDate);
l_StoredProc->Parameters->CreateParameter("@ScmbhFmonth",ftString,pdInput,6,l_ScmbhFmonth);
l_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftInteger,pdInput,1,l_ScmbhCheck);
l_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,18,l_ScmbhChecker);
l_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,l_ScmbhCheckDate);
l_StoredProc->Parameters->CreateParameter("@ScmbhUser",ftString,pdInput,18,l_ScmbhUser);
l_StoredProc->Parameters->CreateParameter("@ScmbhDesc",ftString,pdInput,255,l_ScmbhDesc);
l_StoredProc->Parameters->CreateParameter("@ScmbhSysDate",ftString,pdOutput,40,l_ScmbhSysDate);
l_StoredProc->ExecProc();
l_StoredProc->Close();
l_ScmbhSysDate=l_StoredProc->Parameters->ParamValues["@ScmbhSysDate"];
break;
case 5:
case 6:
for(int i=0;i<ItemCount;i++)
{
LocateItemByIndex(i);
if(l_sdScmbd->CurStatus==2||l_sdScmbd->CurStatus==3)
l_sdScmbd->Update();
}
break;
}
TKSScmbh *p=new TKSScmbh();
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 TKSScmbh::Check(int IsCheck)
{
if(this->Count>0)
{
try
{
l_StoredProc->ProcedureName="sdScmbh_Check";
l_StoredProc->Parameters->Clear();
if(IsCheck==1)
{
ScmbhCheck=1;
ScmbhChecker=g_sdUserCode;
ScmbhCheckDate=g_sdCurDate;
l_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,20,b_ScmbhCode);
l_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftSmallint,pdInput,2,1);
l_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,20,g_sdUserCode);
l_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,g_sdCurDate);
l_StoredProc->ExecProc();
l_StoredProc->Close();
}
else
{
ScmbhCheck=0;
ScmbhChecker="";
ScmbhCheckDate="";
AnsiString temp="";
l_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,20,b_ScmbhCode);
l_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftSmallint,pdInput,2,0);
l_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,20,temp);
l_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,temp);
l_StoredProc->ExecProc();
l_StoredProc->Close();
}
TKSScmbh *p=(TKSScmbh*)Records(CurRecNo);
p->Assign(this);
BackupValue();
}
catch(...)
{
l_ScmbhCheck=b_ScmbhCheck;
l_ScmbhChecker=b_ScmbhChecker;
l_ScmbhCheckDate=b_ScmbhCheckDate;
throw Exception("审核/反审核失败");
}
}
}
//---------------------------------------------------------------------------
void TKSScmbh::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(l_ScmbhCode.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
l_StoredProc->Close();
l_StoredProc->ProcedureName="sdScmbh_Delete";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,18,b_ScmbhCode);
l_StoredProc->ExecProc();
l_StoredProc->Close();
delete l_sdScmbd;
DeleteRecord(this->b_ScmbhCode);
}
//---------------------------------------------------------------------------
void TKSScmbh::AddItem()
{
l_sdScmbd->AddNew();
if(CurStatus!=2)
SetActionID(5);
}
//---------------------------------------------------------------------------
void TKSScmbh::InsertItem()
{
/* l_sdField->AddNew();
TKSField *p=new TKSField();
p->Assign(l_sdField);
if(CurStatus==2)
l_sdField->AddRecord((void *)p,p->GetFieldValue(fiFieldName));
else
l_sdField->Update();
*/
}
//---------------------------------------------------------------------------
void TKSScmbh::EditItem()
{
l_sdScmbd->Edit();
if(CurStatus==1)
{
SetActionID(6);
}
}
//---------------------------------------------------------------------------
void TKSScmbh::DeleteItem()
{
if(CurStatus==2||CurStatus==5)
l_sdScmbd->DeleteRecord(l_sdScmbd->Key);
else
l_sdScmbd->Delete();
}
//---------------------------------------------------------------------------
void TKSScmbh::RemoveItem()
{
if(CurStatus==2)
l_sdScmbd->RemoveRecord(l_sdScmbd->Index);
else
l_sdScmbd->Delete();
}
//---------------------------------------------------------------------------
void TKSScmbh::ClearItem()
{
int iCount;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -