📄 fmdoc.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#define _YW_SDERP_DLL
#include "Fmdoc.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
/////////////////////////////////////////////////////////////////////
/////////帐户管理 TsdCac implement
/////////////////////////////////////////////////////////////////////
void __fastcall TsdCac::SetCacCode(AnsiString value)
{
if (value.IsEmpty() )
throw Exception("帐号不能为空!");
if(value.Length()>30)
throw Exception("帐号长度不能大于30");
if (value!=m_CacCode)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT CacCODE FROM SDCac WHERE CaccoDE='" +value+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("帐号'"+value+"'已存在");
}
m_Query->Close();
}
m_CacCode=value;
}
void __fastcall TsdCac::SetCacBankName(AnsiString value)
{
if(value.IsEmpty())
throw Exception("银行名称不能为空");
if(value.Length()>20)
throw Exception("银行名称不能大于20");
m_CacBankName=value;
}
void __fastcall TsdCac::SetCacType(int value)
{
if(value!=1&&value!=2)
throw Exception("帐户类型只能取值1-银行帐户2-现金帐户");
m_CacType=value;
}
void __fastcall TsdCac::SetCacCurrency(AnsiString value)
{
if(value.IsEmpty())
throw Exception("币种编码不能为空");
if(value.Length()>18)
throw Exception("币种编码长度不能大于18");
if(value!=m_CacCurrency)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT CurrencyCODE FROM SDCurrency WHERE CurrencycoDE='" +value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("币种'"+value+"'未定义");
}
m_Query->Close();
}
m_CacCurrency=value;
}
void __fastcall TsdCac::SetCacBalance(double value)
{
//非存取字段
m_CacBalance=value;
}
void __fastcall TsdCac::SetCacDesc(AnsiString value)
{
if(value.Length()>40)
throw Exception("备注长度不能大于40");
m_CacDesc=value;
}
void __fastcall TsdCac::SetCacGlKm(AnsiString value)
{
if(value.Length()>18)
throw Exception("科目编码不能大于18");
m_CacGlKm=value;
}
void __fastcall TsdCac::SetCacKmDir(int value)
{
if(value!=1&&value!=-1)
throw Exception("科日方向只能取值1-借方-1-贷方");
m_CacKmDir=value;
}
void __fastcall TsdCac::SetCacCancel(int value)
{
if(value!=0&&value!=1)
throw Exception("取消标志只能取值0-正常1-取消");
m_CacCancel=value;
}
void __fastcall TsdCac::SetCacCancelDate(AnsiString value)
{
if(m_CacCancel==1)
{
if(value.IsEmpty())
throw Exception("取消日期不能为空");
m_CacCancelDate=Validate(value);
}
else
{
if(value.IsEmpty())
m_CacCancelDate="";
else
throw Exception("正常状态不能为取消日期赋值");
}
}
void __fastcall TsdCac::SetCacUser(AnsiString value)
{
if(value.IsEmpty())
throw Exception("操作员编码不能为空");
if(value.Length()>18)
throw Exception("操作员编码长度不能大于18");
if (value!=m_CacUser)
{
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_CacUser=value;
}
TsdCac::TsdCac(TDataComm *DC)
:TsdStandard(DC)
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM SDcac";
FilterString="";
OrderString="cacCode";
}
catch(Exception &e)
{
throw Exception("构造函数出错");
}
}
TsdCac::TsdCac()
:TsdStandard()
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM SDcac";
FilterString="";
OrderString="cacCode";
}
catch(Exception &e)
{
throw Exception("构造函数出错");
}
}
AnsiString TsdCac::GetFieldValue(euCac sdFieldName)
{
switch(sdFieldName)
{
case fiCacCode:
return CacCode;
case fiCacBankName:
return CacBankName;
case fiCacType:
return CacType;
case fiCacCurrency:
return CacCurrency;
case fiCacBalance:
return CacBalance;
case fiCacDesc:
return CacDesc;
case fiCacGlKm:
return CacGlKm;
case fiCacKmDir:
return CacKmDir;
case fiCacCancel:
return CacCancel;
case fiCacCancelDate:
return CacCancelDate;
case fiCacUser:
return CacUser;
case fiCacSysDate:
return CacSysDate;
default:
throw Exception("当前未定义可取值");
}
}
void TsdCac::SetFieldValue(euCac sdFieldName, AnsiString value)
{
switch(sdFieldName)
{
case fiCacCode:
CacCode=value;
break;
case fiCacBankName:
CacBankName=value;
break;
case fiCacType:
CacType=value.ToInt();
break;
case fiCacCurrency:
CacCurrency=value;
break;
case fiCacBalance:
CacBalance=value.ToDouble();
break;
case fiCacDesc:
CacDesc=value;
break;
case fiCacGlKm:
CacGlKm=value;
break;
case fiCacKmDir:
CacKmDir=value.ToInt();
break;
case fiCacCancel:
CacCancel=value.ToInt();
break;
case fiCacCancelDate:
CacCancelDate=value;
break;
case fiCacUser:
CacUser=value;
break;
default:
throw Exception("当前字段未定义可赋值");
}
}
void TsdCac::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(m_CacCode.IsEmpty()==true)
throw Exception("帐号不能为空!");
m_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
m_StoredProc->ProcedureName="sdCac_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@CacCode",ftString,pdInput,18,m_CacCode);
m_StoredProc->Parameters->CreateParameter("@CacBankName",ftString,pdInput,20,m_CacBankName);
m_StoredProc->Parameters->CreateParameter("@CacType",ftInteger,pdInput,1,m_CacType);
m_StoredProc->Parameters->CreateParameter("@CacCurrency",ftString,pdInput,18,m_CacCurrency);
m_StoredProc->Parameters->CreateParameter("@CacBalance",ftFloat,pdInput,12,m_CacBalance);
m_StoredProc->Parameters->CreateParameter("@CacDesc",ftString,pdInput,40,m_CacDesc);
m_StoredProc->Parameters->CreateParameter("@CacGlKm",ftString,pdInput,18,m_CacGlKm);
m_StoredProc->Parameters->CreateParameter("@CacKmDir",ftFloat,pdInput,5,m_CacKmDir);
m_StoredProc->Parameters->CreateParameter("@CacCancel",ftInteger,pdInput,1,m_CacCancel);
m_StoredProc->Parameters->CreateParameter("@CacCancelDate",ftString,pdInput,10,m_CacCancelDate);
m_StoredProc->Parameters->CreateParameter("@CacUser",ftString,pdInput,18,m_CacUser);
m_StoredProc->Parameters->CreateParameter("@CacSysDate",ftString,pdOutput,30,m_CacSysDate);
m_StoredProc->ExecProc();
m_CacSysDate=m_StoredProc->Parameters->ParamValues["@CacSysDate"];
}
else
{
m_StoredProc->ProcedureName="sdCac_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_CacCode",ftString,pdInput,18,b_CacCode);
m_StoredProc->Parameters->CreateParameter("@CacCode",ftString,pdInput,18,m_CacCode);
m_StoredProc->Parameters->CreateParameter("@CacBankName",ftString,pdInput,20,m_CacBankName);
m_StoredProc->Parameters->CreateParameter("@CacType",ftInteger,pdInput,1,m_CacType);
m_StoredProc->Parameters->CreateParameter("@CacCurrency",ftString,pdInput,18,m_CacCurrency);
m_StoredProc->Parameters->CreateParameter("@CacBalance",ftFloat,pdInput,12,m_CacBalance);
m_StoredProc->Parameters->CreateParameter("@CacDesc",ftString,pdInput,40,m_CacDesc);
m_StoredProc->Parameters->CreateParameter("@CacGlKm",ftString,pdInput,18,m_CacGlKm);
m_StoredProc->Parameters->CreateParameter("@CacKmDir",ftFloat,pdInput,5,m_CacKmDir);
m_StoredProc->Parameters->CreateParameter("@CacCancel",ftInteger,pdInput,1,m_CacCancel);
m_StoredProc->Parameters->CreateParameter("@CacCancelDate",ftString,pdInput,10,m_CacCancelDate);
m_StoredProc->Parameters->CreateParameter("@CacUser",ftString,pdInput,18,m_CacUser);
m_StoredProc->Parameters->CreateParameter("@CacSysDate",ftString,pdOutput,30,m_CacSysDate);
m_StoredProc->ExecProc();
m_CacSysDate=m_StoredProc->Parameters->ParamValues["@CacSysDate"];
}
m_StoredProc->Close();
TsdCac *p=new TsdCac();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->CacCode);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->CacCode,this->b_CacCode);
}
}
void TsdCac::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(m_CacCode.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdCac_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_CacCode",ftString,pdInput,18,m_CacCode);
m_StoredProc->ExecProc();
DeleteRecord(this->b_CacCode);
}
void TsdCac::BackupValue()
{
b_CacCode=m_CacCode;
b_CacBankName=m_CacBankName;
b_CacType=m_CacType;
b_CacCurrency=m_CacCurrency;
b_CacBalance=m_CacBalance;
b_CacDesc=m_CacDesc;
b_CacGlKm=m_CacGlKm;
b_CacKmDir=m_CacKmDir;
b_CacCancel=m_CacCancel;
b_CacCancelDate=m_CacCancelDate;
b_CacUser=m_CacUser;
b_CacSysDate=m_CacSysDate;
}
void TsdCac::RestoreValue()
{
m_CacCode=b_CacCode;
m_CacBankName=b_CacBankName;
m_CacType=b_CacType;
m_CacCurrency=b_CacCurrency;
m_CacBalance=b_CacBalance;
m_CacDesc=b_CacDesc;
m_CacGlKm=b_CacGlKm;
m_CacKmDir=b_CacKmDir;
m_CacCancel=b_CacCancel;
m_CacCancelDate=b_CacCancelDate;
m_CacUser=b_CacUser;
m_CacSysDate=b_CacSysDate;
}
void TsdCac::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_CacCode="";
m_CacBankName="";
m_CacType=0;
m_CacCurrency="";
m_CacBalance=0;
m_CacDesc="";
m_CacGlKm="";
m_CacKmDir=0;
m_CacCancel=0;
m_CacCancelDate="";
m_CacUser="";
m_CacSysDate="";
break;
case 1:
b_CacCode="";
b_CacBankName="";
b_CacType=0;
b_CacCurrency="";
b_CacBalance=0;
b_CacDesc="";
b_CacGlKm="";
b_CacKmDir=0;
b_CacCancel=0;
b_CacCancelDate="";
b_CacUser="";
b_CacSysDate="";
break;
}
}
void TsdCac::BatchLetValue()
{
m_CacCode=m_Query->FieldValues["CacCode"];
m_CacBankName=m_Query->FieldValues["CacBankName"];
m_CacType=m_Query->FieldValues["CacType"];
m_CacCurrency=m_Query->FieldValues["CacCurrency"];
m_CacBalance=m_Query->FieldValues["CacBalance"];
m_CacDesc=m_Query->FieldValues["CacDesc"];
m_CacGlKm=m_Query->FieldValues["CacGlKm"];
m_CacKmDir=m_Query->FieldValues["CacKmDir"];
m_CacCancel=m_Query->FieldValues["CacCancel"];
m_CacCancelDate=m_Query->FieldValues["CacCancelDate"];
m_CacUser=m_Query->FieldValues["CacUser"];
m_CacSysDate=m_Query->FieldValues["CacSysDate"];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -