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