📄 cmdoc.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#define _YW_SDERP_DLL
#include "Cmdoc.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
/////////////////////////////////////////////////////////////////////
/////////成本中心维护 TKSCc implement
/////////////////////////////////////////////////////////////////////
void __fastcall TKSCc::SetCcCode(AnsiString value)
{
if (value.IsEmpty() )
throw Exception("成本中心代码不能为空!");
if(value.Length()>18)
throw Exception("成本中心代码长度不能大于18");
if (value!=l_CcCode)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("SELECT ccCODE FROM SDcc WHERE ccCODE='" +value+"'");
l_Query->Open();
if(l_Query->RecordCount>0)
{
l_Query->Close();
throw Exception("成本中心"+value+"'已存在");
}
l_Query->Close();
}
l_CcCode=value;
}
void __fastcall TKSCc::SetCcName(AnsiString value)
{
if(value.IsEmpty())
throw Exception("成本中心名称不能为空");
if(value.Length()>20)
throw Exception("成本中心名称长度不能大于20");
if (value!= l_CcName)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("SELECT ccCODE FROM SDcc WHERE CCNAME='" +value+"'");
l_Query->Open();
if(l_Query->RecordCount>0)
{
l_Query->Close();
throw Exception("成本中心名称"+value+"'已存在");
}
l_Query->Close();
}
l_CcName=value;
}
void __fastcall TKSCc::SetCcDesc(AnsiString value)
{
if(value.Length()>40)
throw Exception("备注长度不能大于40");
l_CcDesc=value;
}
void __fastcall TKSCc::SetCcGlKm(AnsiString value)
{
if(!value.IsEmpty())
{
if(value.Length()>18)
throw Exception("科目编码长不能大于18");
if(l_CcGlKm!=value)
{
l_Query->Close();
l_Query->SQL->Clear();
l_Query->SQL->Add("select * from sdGlkm where glkmcode='"+value+"' and glkmmx=1");
l_Query->Open();
if(l_Query->RecordCount<=0)
{
l_Query->Close();
throw Exception("科目编码不存在或不是明细科目");
}
l_Query->Close();
}
}
l_CcGlKm=value;
}
void __fastcall TKSCc::SetCcKmDir(int value)
{
if(value!=-1&&value!=1)
throw Exception("科目方向只能取值 1-借方 -1-贷方");
l_CcKmDir=value;
}
void __fastcall TKSCc::SetCcType(int value)
{
//备用
l_CcType=value;
}
void __fastcall TKSCc::SetCcUser(AnsiString value)
{
if(value.IsEmpty())
throw Exception("操作员编码不能为空");
if(value.Length()>18)
throw Exception("操作员编码长度不能大于18");
if(value!=l_CcUser)
{
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_CcUser=value;
}
void __fastcall TKSCc::SetCcCancel(int value)
{
if(value!=0&&value!=1)
throw Exception("取消标志只不能取值0-正常1-取消");
l_CcCancel=value;
}
void __fastcall TKSCc::SetCcCancelDate(AnsiString value)
{ //change by hcq date 8.9
if(l_CcCancel==1)
{
if(value.IsEmpty())
throw Exception("取消日期不能为空");
l_CcCancelDate=Validate(value);
}
else
{
if(value.IsEmpty()==false)
throw Exception("正常状态不能为取消日期赋值");
l_CcCancelDate="";
}
}
TKSCc::TKSCc(TDataComm *DC)
:TKSStandard(DC)
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM SDcc";
FilterString="";
OrderString="ccCODE";
}
catch(Exception &e)
{
throw Exception("构造函数出错");
}
}
TKSCc::TKSCc()
:TKSStandard()
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM SDcc";
FilterString="";
OrderString="ccCODE";
}
catch(Exception &e)
{
throw Exception("构造函数出错");
}
}
AnsiString TKSCc::GetFieldValue(euCc sdFieldName)
{
switch(sdFieldName)
{
case fiCcCode:
return CcCode;
case fiCcName:
return CcName;
case fiCcDesc:
return CcDesc;
case fiCcGlKm:
return CcGlKm;
case fiCcKmDir:
return CcKmDir;
case fiCcType:
return CcType;
case fiCcUser:
return CcUser;
case fiCcCancel:
return CcCancel;
case fiCcCancelDate:
return CcCancelDate;
case fiCcSysDate:
return CcSysDate;
default:
throw Exception("当前未定义可取值");
}
}
void TKSCc::SetFieldValue(euCc sdFieldName, AnsiString value)
{
switch(sdFieldName)
{
case fiCcCode:
CcCode=value;
break;
case fiCcName:
CcName=value;
break;
case fiCcDesc:
CcDesc=value;
break;
case fiCcGlKm:
CcGlKm=value;
break;
case fiCcKmDir:
CcKmDir=value.ToInt();
break;
case fiCcType:
CcType=value.ToInt();
break;
case fiCcUser:
CcUser=value;
break;
case fiCcCancel:
CcCancel=value.ToInt();
break;
case fiCcCancelDate:
CcCancelDate=value;
break;
default:
throw Exception("当前字段未定义可赋值");
}
}
void TKSCc::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(l_CcCode.IsEmpty()==true)
throw Exception("单号不能为空!");
l_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
l_StoredProc->ProcedureName="sdCc_Insert";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@CcCode",ftString,pdInput,18,l_CcCode);
l_StoredProc->Parameters->CreateParameter("@CcName",ftString,pdInput,20,l_CcName);
l_StoredProc->Parameters->CreateParameter("@CcDesc",ftString,pdInput,40,l_CcDesc);
l_StoredProc->Parameters->CreateParameter("@CcGlKm",ftString,pdInput,18,l_CcGlKm);
l_StoredProc->Parameters->CreateParameter("@CcKmDir",ftFloat,pdInput,5,l_CcKmDir);
l_StoredProc->Parameters->CreateParameter("@CcType",ftInteger,pdInput,1,l_CcType);
l_StoredProc->Parameters->CreateParameter("@CcUser",ftString,pdInput,18,l_CcUser);
l_StoredProc->Parameters->CreateParameter("@CcCancel",ftInteger,pdInput,1,l_CcCancel);
l_StoredProc->Parameters->CreateParameter("@CcCancelDate",ftString,pdInput,10,l_CcCancelDate);
l_StoredProc->Parameters->CreateParameter("@CcSysDate",ftString,pdOutput,40,l_CcSysDate);
l_StoredProc->ExecProc();
l_StoredProc->Close();
l_CcSysDate=l_StoredProc->Parameters->ParamValues["@CcSysDate"];
}
else
{
l_StoredProc->ProcedureName="sdCc_Update";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@W_CcCode",ftString,pdInput,18,b_CcCode);
l_StoredProc->Parameters->CreateParameter("@W_CcUser",ftString,pdInput,18,b_CcUser);
l_StoredProc->Parameters->CreateParameter("@CcCode",ftString,pdInput,18,l_CcCode);
l_StoredProc->Parameters->CreateParameter("@CcName",ftString,pdInput,20,l_CcName);
l_StoredProc->Parameters->CreateParameter("@CcDesc",ftString,pdInput,40,l_CcDesc);
l_StoredProc->Parameters->CreateParameter("@CcGlKm",ftString,pdInput,18,l_CcGlKm);
l_StoredProc->Parameters->CreateParameter("@CcKmDir",ftFloat,pdInput,5,l_CcKmDir);
l_StoredProc->Parameters->CreateParameter("@CcType",ftInteger,pdInput,1,l_CcType);
l_StoredProc->Parameters->CreateParameter("@CcUser",ftString,pdInput,18,l_CcUser);
l_StoredProc->Parameters->CreateParameter("@CcCancel",ftInteger,pdInput,1,l_CcCancel);
l_StoredProc->Parameters->CreateParameter("@CcCancelDate",ftString,pdInput,10,l_CcCancelDate);
l_StoredProc->Parameters->CreateParameter("@CcSysDate",ftString,pdOutput,40,l_CcSysDate);
l_StoredProc->ExecProc();
l_StoredProc->Close();
l_CcSysDate=l_StoredProc->Parameters->ParamValues["@CcSysDate"];
}
TKSCc *p=new TKSCc();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->CcCode);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->CcCode,this->b_CcCode);
}
}
void TKSCc::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(l_CcCode.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
l_StoredProc->Close();
l_StoredProc->ProcedureName="sdCc_Delete";
l_StoredProc->Parameters->Clear();
l_StoredProc->Parameters->CreateParameter("@W_CcCode",ftString,pdInput,18,b_CcCode);
l_StoredProc->Parameters->CreateParameter("@W_CcUser",ftString,pdInput,18,b_CcUser);
l_StoredProc->ExecProc();
l_StoredProc->Close();
DeleteRecord(this->b_CcCode);
}
void TKSCc::BackupValue()
{
b_CcCode=l_CcCode;
b_CcName=l_CcName;
b_CcDesc=l_CcDesc;
b_CcGlKm=l_CcGlKm;
b_CcKmDir=l_CcKmDir;
b_CcType=l_CcType;
b_CcUser=l_CcUser;
b_CcCancel=l_CcCancel;
b_CcCancelDate=l_CcCancelDate;
b_CcSysDate=l_CcSysDate;
}
void TKSCc::RestoreValue()
{
l_CcCode=b_CcCode;
l_CcName=b_CcName;
l_CcDesc=b_CcDesc;
l_CcGlKm=b_CcGlKm;
l_CcKmDir=b_CcKmDir;
l_CcType=b_CcType;
l_CcUser=b_CcUser;
l_CcCancel=b_CcCancel;
l_CcCancelDate=b_CcCancelDate;
l_CcSysDate=b_CcSysDate;
}
void TKSCc::EmptyValue(int Index)
{
switch(Index)
{
case 0:
l_CcCode="";
l_CcName="";
l_CcDesc="";
l_CcGlKm="";
l_CcKmDir=0;
l_CcType=0;
l_CcUser="";
l_CcCancel=0;
l_CcCancelDate="";
l_CcSysDate="";
break;
case 1:
b_CcCode="";
b_CcName="";
b_CcDesc="";
b_CcGlKm="";
b_CcKmDir=0;
b_CcType=0;
b_CcUser="";
b_CcCancel=0;
b_CcCancelDate="";
b_CcSysDate="";
break;
}
}
void TKSCc::BatchLetValue()
{
l_CcCode=l_Query->FieldValues["CcCode"];
l_CcName=l_Query->FieldValues["CcName"];
l_CcDesc=l_Query->FieldValues["CcDesc"];
l_CcGlKm=l_Query->FieldValues["CcGlKm"];
l_CcKmDir=l_Query->FieldValues["CcKmDir"];
l_CcType=l_Query->FieldValues["CcType"];
l_CcUser=l_Query->FieldValues["CcUser"];
l_CcCancel=l_Query->FieldValues["CcCancel"];
l_CcCancelDate=l_Query->FieldValues["CcCancelDate"];
l_CcSysDate=l_Query->FieldValues["CcSysDate"];
BackupValue();
}
void TKSCc::Assign(TKSCc *p)
{
SetActionID(p->CurStatus);
l_CcCode=p->l_CcCode;
l_CcName=p->l_CcName;
l_CcDesc=p->l_CcDesc;
l_CcGlKm=p->l_CcGlKm;
l_CcKmDir=p->l_CcKmDir;
l_CcType=p->l_CcType;
l_CcUser=p->l_CcUser;
l_CcCancel=p->l_CcCancel;
l_CcCancelDate=p->l_CcCancelDate;
l_CcSysDate=p->l_CcSysDate;
BackupValue();
}
void TKSCc::AssignValue()
{
TKSCc *p=(TKSCc *)Records(CurRecNo);
Assign(p);
}
int TKSCc::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();
TKSCc *p=new TKSCc();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->CcCode);
l_Query->Next();
}
MoveFirst();
}
l_Query->Close();
return Count;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -